From 37924cb36e8e67da483459c6963004e132227efe Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Mon, 5 Feb 2018 02:50:47 -0500 Subject: bcachefs: call posix_acl_update_mode() from bch2_set_acl fixes xfstest 375 --- fs/bcachefs/acl.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/fs/bcachefs/acl.c b/fs/bcachefs/acl.c index 480941d64e2a..4016ab965972 100644 --- a/fs/bcachefs/acl.c +++ b/fs/bcachefs/acl.c @@ -185,6 +185,24 @@ int bch2_set_acl(struct inode *vinode, struct posix_acl *acl, int type) size_t size = 0; int ret; + if (type == ACL_TYPE_ACCESS && acl) { + umode_t mode = inode->v.i_mode; + + ret = posix_acl_update_mode(&inode->v, &mode, &acl); + if (ret) + return ret; + + mutex_lock(&inode->ei_update_lock); + inode->v.i_mode = mode; + inode->v.i_ctime = current_time(&inode->v); + + ret = bch2_write_inode(c, inode); + mutex_unlock(&inode->ei_update_lock); + + if (ret) + return ret; + } + switch (type) { case ACL_TYPE_ACCESS: name_index = BCH_XATTR_INDEX_POSIX_ACL_ACCESS; -- cgit v1.2.3