diff options
| author | Mister Oyster <oysterized@gmail.com> | 2017-05-29 02:54:17 +0200 |
|---|---|---|
| committer | Mister Oyster <oysterized@gmail.com> | 2017-05-29 03:52:17 +0200 |
| commit | 80f8d49418818d267bd3faefa520c404c1a4f7d6 (patch) | |
| tree | fb500f9e4a56eb5ddcc129d5f18a0268ca1aa520 | |
| parent | cacd1e12066f4a859bc57d4e5383c3502e9bb8db (diff) | |
ext4: fix BACKPORT: posix_acl: Clear SGID bit when setting file permissions
| -rw-r--r-- | fs/ext4/acl.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/fs/ext4/acl.c b/fs/ext4/acl.c index d40c8dbbb..87d9bbf6a 100644 --- a/fs/ext4/acl.c +++ b/fs/ext4/acl.c @@ -201,15 +201,11 @@ __ext4_set_acl(handle_t *handle, struct inode *inode, int type, case ACL_TYPE_ACCESS: name_index = EXT4_XATTR_INDEX_POSIX_ACL_ACCESS; if (acl) { - error = posix_acl_equiv_mode(acl, &inode->i_mode); - if (error < 0) + error = posix_acl_update_mode(inode, &inode->i_mode, &acl); + if (error) return error; - else { - inode->i_ctime = ext4_current_time(inode); - ext4_mark_inode_dirty(handle, inode); - if (error == 0) - acl = NULL; - } + inode->i_ctime = ext4_current_time(inode); + ext4_mark_inode_dirty(handle, inode); } break; |
