forked from luck/tmp_suning_uos_patched
NFSv3/acl: forget acl cache after setattr
Sync of ACL with std permissions fail,We need to forget the ACL cache after setattr. Reproduction: #!/bin/bash touch testfile cat <<EOF >testfile #!/bin/bash echo "Test was executed" EOF chmod u=rwx testfile chmod g=rw- testfile chmod o=r-- testfile chacl u::r--,g::rwx,o:rw- testfile chmod u+w testfile ls -l testfile chacl -l testfile Output: -rw-rwxrw- 1 root root 0 Mar 28 05:29 testfile testfile [u::r--,g::rwx,o::rw-] Signed-off-by: chendt.fnst <chendt.fnst@cn.fujitsu.com> Reviewed-by: Benjamin Coddington <bcodding@redhat.com> Reviewed-by: Kinglong Mee <Kinglong Mee> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
parent
609339c123
commit
dbc898ae10
|
@ -138,8 +138,11 @@ nfs3_proc_setattr(struct dentry *dentry, struct nfs_fattr *fattr,
|
||||||
msg.rpc_cred = nfs_file_cred(sattr->ia_file);
|
msg.rpc_cred = nfs_file_cred(sattr->ia_file);
|
||||||
nfs_fattr_init(fattr);
|
nfs_fattr_init(fattr);
|
||||||
status = rpc_call_sync(NFS_CLIENT(inode), &msg, 0);
|
status = rpc_call_sync(NFS_CLIENT(inode), &msg, 0);
|
||||||
if (status == 0)
|
if (status == 0) {
|
||||||
|
if (NFS_I(inode)->cache_validity & NFS_INO_INVALID_ACL)
|
||||||
|
nfs_zap_acl_cache(inode);
|
||||||
nfs_setattr_update_inode(inode, sattr, fattr);
|
nfs_setattr_update_inode(inode, sattr, fattr);
|
||||||
|
}
|
||||||
dprintk("NFS reply setattr: %d\n", status);
|
dprintk("NFS reply setattr: %d\n", status);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user