diff options
author | Kevin Hilman <khilman@baylibre.com> | 2017-08-23 01:37:31 +0300 |
---|---|---|
committer | Kevin Hilman <khilman@baylibre.com> | 2017-08-23 01:37:31 +0300 |
commit | 4db26f83a7a1f8b844e4543cd82a87bee1d224e2 (patch) | |
tree | 260f68e5671b902344f8b568a45bd6df645b5bcb /fs/ocfs2/acl.c | |
parent | b16c71c9f6ff50d4e4398cefd9113d82ee2fe8e6 (diff) | |
parent | aae4e7a8bc44722fe70d58920a36916b1043195e (diff) | |
download | linux-4db26f83a7a1f8b844e4543cd82a87bee1d224e2.tar.xz |
Merge tag 'v4.13-rc4' into v4.14/dt64
Linux 4.13-rc4
Diffstat (limited to 'fs/ocfs2/acl.c')
-rw-r--r-- | fs/ocfs2/acl.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/fs/ocfs2/acl.c b/fs/ocfs2/acl.c index dc22ba8c710f..e50a387959bf 100644 --- a/fs/ocfs2/acl.c +++ b/fs/ocfs2/acl.c @@ -240,18 +240,6 @@ int ocfs2_set_acl(handle_t *handle, switch (type) { case ACL_TYPE_ACCESS: name_index = OCFS2_XATTR_INDEX_POSIX_ACL_ACCESS; - if (acl) { - umode_t mode; - - ret = posix_acl_update_mode(inode, &mode, &acl); - if (ret) - return ret; - - ret = ocfs2_acl_set_mode(inode, di_bh, - handle, mode); - if (ret) - return ret; - } break; case ACL_TYPE_DEFAULT: name_index = OCFS2_XATTR_INDEX_POSIX_ACL_DEFAULT; @@ -289,7 +277,19 @@ int ocfs2_iop_set_acl(struct inode *inode, struct posix_acl *acl, int type) had_lock = ocfs2_inode_lock_tracker(inode, &bh, 1, &oh); if (had_lock < 0) return had_lock; + if (type == ACL_TYPE_ACCESS && acl) { + umode_t mode; + + status = posix_acl_update_mode(inode, &mode, &acl); + if (status) + goto unlock; + + status = ocfs2_acl_set_mode(inode, bh, NULL, mode); + if (status) + goto unlock; + } status = ocfs2_set_acl(NULL, inode, bh, type, acl, NULL, NULL); +unlock: ocfs2_inode_unlock_tracker(inode, 1, &oh, had_lock); brelse(bh); return status; |