Gang He
2020-Jul-17 02:37 UTC
[Ocfs2-devel] [PATCH] ocfs2: fix remounting needed after setfacl command
When use setfacl command to change a file's acl, the user cannot get the latest acl information from the file via getfacl command, until remounting the file system. e.g. setfacl -m u:ivan:rw /ocfs2/ivan getfacl /ocfs2/ivan getfacl: Removing leading '/' from absolute path names file: ocfs2/ivan owner: root group: root user::rw- group::r-- mask::r-- other::r-- The latest acl record("u:ivan:rw") cannot be returned via getfacl command until remounting. Signed-off-by: Gang He <ghe at suse.com> --- fs/ocfs2/acl.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/ocfs2/acl.c b/fs/ocfs2/acl.c index bb981ec76456..7b07f5df3a29 100644 --- a/fs/ocfs2/acl.c +++ b/fs/ocfs2/acl.c @@ -256,6 +256,8 @@ static int ocfs2_set_acl(handle_t *handle, ret = ocfs2_xattr_set(inode, name_index, "", value, size, 0); kfree(value); + if (!ret) + set_cached_acl(inode, type, acl); return ret; } -- 2.12.3
Joseph Qi
2020-Jul-20 01:16 UTC
[Ocfs2-devel] [PATCH] ocfs2: fix remounting needed after setfacl command
On 2020/7/17 10:37, Gang He wrote:> When use setfacl command to change a file's acl, the user cannot > get the latest acl information from the file via getfacl command, > until remounting the file system. > e.g. > setfacl -m u:ivan:rw /ocfs2/ivan > getfacl /ocfs2/ivan > getfacl: Removing leading '/' from absolute path names > file: ocfs2/ivan > owner: root > group: root > user::rw- > group::r-- > mask::r-- > other::r-- > > The latest acl record("u:ivan:rw") cannot be returned via getfacl > command until remounting. > > Signed-off-by: Gang He <ghe at suse.com>Reviewed-by: Joseph Qi <joseph.qi at linux.alibaba.com>> --- > fs/ocfs2/acl.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/fs/ocfs2/acl.c b/fs/ocfs2/acl.c > index bb981ec76456..7b07f5df3a29 100644 > --- a/fs/ocfs2/acl.c > +++ b/fs/ocfs2/acl.c > @@ -256,6 +256,8 @@ static int ocfs2_set_acl(handle_t *handle, > ret = ocfs2_xattr_set(inode, name_index, "", value, size, 0); > > kfree(value); > + if (!ret) > + set_cached_acl(inode, type, acl); > > return ret; > } >