aboutsummaryrefslogtreecommitdiffstats
path: root/fs/f2fs
diff options
context:
space:
mode:
authorChao Yu <yuchao0@huawei.com>2020-12-16 17:15:23 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-03-04 11:38:42 +0100
commite391239dcd174dba5d92546efb8f4e2504c93cdf (patch)
tree150bfbfedbb8dc861d1624edf20a01f45314d4ba /fs/f2fs
parentc41de6eae2483eb17ff9a2c5327999069e81dc21 (diff)
downloadkernel_replicant_linux-e391239dcd174dba5d92546efb8f4e2504c93cdf.tar.gz
kernel_replicant_linux-e391239dcd174dba5d92546efb8f4e2504c93cdf.tar.bz2
kernel_replicant_linux-e391239dcd174dba5d92546efb8f4e2504c93cdf.zip
f2fs: fix out-of-repair __setattr_copy()
commit 2562515f0ad7342bde6456602c491b64c63fe950 upstream. __setattr_copy() was copied from setattr_copy() in fs/attr.c, there is two missing patches doesn't cover this inner function, fix it. Commit 7fa294c8991c ("userns: Allow chown and setgid preservation") Commit 23adbe12ef7d ("fs,userns: Change inode_capable to capable_wrt_inode_uidgid") Fixes: fbfa2cc58d53 ("f2fs: add file operations") Cc: stable@vger.kernel.org Signed-off-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/f2fs')
-rw-r--r--fs/f2fs/file.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index f97f2842f9ec..87b1baa974f4 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -851,7 +851,8 @@ static void __setattr_copy(struct inode *inode, const struct iattr *attr)
if (ia_valid & ATTR_MODE) {
umode_t mode = attr->ia_mode;
- if (!in_group_p(inode->i_gid) && !capable(CAP_FSETID))
+ if (!in_group_p(inode->i_gid) &&
+ !capable_wrt_inode_uidgid(inode, CAP_FSETID))
mode &= ~S_ISGID;
set_acl_inode(inode, mode);
}