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; > } >