diff options
author | Chao Yu <yuchao0@huawei.com> | 2020-12-16 17:15:23 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-03-03 17:44:44 +0100 |
commit | 60ca07c563c22e3ba8bfff060c390ca9c76b5e30 (patch) | |
tree | 947e7f3460a7375be2026076e4a9e6b823c35859 /fs/f2fs | |
parent | 828d937f52d82604dc430ed889b7dfb008c874ad (diff) | |
download | linux-stable-60ca07c563c22e3ba8bfff060c390ca9c76b5e30.tar.gz linux-stable-60ca07c563c22e3ba8bfff060c390ca9c76b5e30.tar.bz2 linux-stable-60ca07c563c22e3ba8bfff060c390ca9c76b5e30.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.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 0bedcd70b51f..17f139892935 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -682,7 +682,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); } |