This patch copies commit b7f8a09f80: "btrfs: Don't clear SGID when inheriting ACLs" written by Jan.
Fixes: 073931017b49d9458aa351605b43a7e34598caef CC: sta...@vger.kernel.org Signed-off-by: Jan Kara <j...@suse.cz> Signed-off-by: Jaegeuk Kim <jaeg...@kernel.org> --- fs/f2fs/acl.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/fs/f2fs/acl.c b/fs/f2fs/acl.c index a140c5e3dc54..da77352c5ad3 100644 --- a/fs/f2fs/acl.c +++ b/fs/f2fs/acl.c @@ -211,12 +211,8 @@ static int __f2fs_set_acl(struct inode *inode, int type, switch (type) { case ACL_TYPE_ACCESS: name_index = F2FS_XATTR_INDEX_POSIX_ACL_ACCESS; - if (acl) { - error = posix_acl_update_mode(inode, &inode->i_mode, &acl); - if (error) - return error; + if (acl) set_acl_inode(inode, inode->i_mode); - } break; case ACL_TYPE_DEFAULT: @@ -249,6 +245,13 @@ static int __f2fs_set_acl(struct inode *inode, int type, int f2fs_set_acl(struct inode *inode, struct posix_acl *acl, int type) { + int ret; + + if (type == ACL_TYPE_ACCESS && acl) { + ret = posix_acl_update_mode(inode, &inode->i_mode, &acl); + if (ret) + return ret; + } return __f2fs_set_acl(inode, type, acl, NULL); } -- 2.13.0.rc1.294.g07d810a77f-goog