Hi, On Fri, 2019-02-22 at 15:35 +0800, yangerkun wrote: > Ping? > > yangerkun wrote on 2019/2/20 15:29: > > Since server may call posix_acl_update_mode which can lead acl been > > NULL. So,just drop acl cache after rpc_call_sync, and if anyone > > want to > > use acl, they can get the correct acl by send a msg to server > > themselves. > > This can fix xfstests generic/099 over nfsv3. > > > > Signed-off-by: yangerkun <yangerkun@xxxxxxxxxx> > > --- > > fs/nfs/nfs3acl.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/fs/nfs/nfs3acl.c b/fs/nfs/nfs3acl.c > > index 9fce185..6c07ebc 100644 > > --- a/fs/nfs/nfs3acl.c > > +++ b/fs/nfs/nfs3acl.c > > @@ -222,8 +222,8 @@ static int __nfs3_proc_setacls(struct inode > > *inode, struct posix_acl *acl, > > switch (status) { > > case 0: > > status = nfs_refresh_inode(inode, fattr); > > - set_cached_acl(inode, ACL_TYPE_ACCESS, acl); > > - set_cached_acl(inode, ACL_TYPE_DEFAULT, dfacl); > > + /* Sever may call posix_acl_update_mode */ > > + forget_all_cached_acls(inode); > > break; > > case -EPFNOSUPPORT: > > case -EPROTONOSUPPORT: > > I've applied the following patch http://git.linux-nfs.org/?p=trondmy/linux-nfs.git;a=commitdiff;h=ded52fbe7020a5696b0b0a0fdbf234e37bf16f94 in order to fix this issue. The reason why I prefer that fix is that we're already calling nfs_zap_acl_cache(inode) immediately before this switch statement, so the call to 'forget_all_cached_acls()' appears redundant. Thanks! Trond -- Trond Myklebust Linux NFS client maintainer, Hammerspace trond.myklebust@xxxxxxxxxxxxxxx