mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-24 23:04:17 +08:00
fs/ntfs3: Drop suid and sgid bits as a part of fpunch
[ Upstream commit e50f9560b8
]
Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
c28efa873a
commit
7e0aff0aab
@ -498,10 +498,14 @@ static long ntfs_fallocate(struct file *file, int mode, loff_t vbo, loff_t len)
|
||||
ni_lock(ni);
|
||||
err = attr_punch_hole(ni, vbo, len, &frame_size);
|
||||
ni_unlock(ni);
|
||||
if (!err)
|
||||
goto ok;
|
||||
|
||||
if (err != E_NTFS_NOTALIGNED)
|
||||
goto out;
|
||||
|
||||
/* Process not aligned punch. */
|
||||
err = 0;
|
||||
mask = frame_size - 1;
|
||||
vbo_a = (vbo + mask) & ~mask;
|
||||
end_a = end & ~mask;
|
||||
@ -524,6 +528,8 @@ static long ntfs_fallocate(struct file *file, int mode, loff_t vbo, loff_t len)
|
||||
ni_lock(ni);
|
||||
err = attr_punch_hole(ni, vbo_a, end_a - vbo_a, NULL);
|
||||
ni_unlock(ni);
|
||||
if (err)
|
||||
goto out;
|
||||
}
|
||||
} else if (mode & FALLOC_FL_COLLAPSE_RANGE) {
|
||||
/*
|
||||
@ -563,6 +569,8 @@ static long ntfs_fallocate(struct file *file, int mode, loff_t vbo, loff_t len)
|
||||
ni_lock(ni);
|
||||
err = attr_insert_range(ni, vbo, len);
|
||||
ni_unlock(ni);
|
||||
if (err)
|
||||
goto out;
|
||||
} else {
|
||||
/* Check new size. */
|
||||
u8 cluster_bits = sbi->cluster_bits;
|
||||
@ -639,6 +647,7 @@ static long ntfs_fallocate(struct file *file, int mode, loff_t vbo, loff_t len)
|
||||
}
|
||||
}
|
||||
|
||||
ok:
|
||||
err = file_modified(file);
|
||||
if (err)
|
||||
goto out;
|
||||
|
Loading…
Reference in New Issue
Block a user