• Su Yanjun's avatar
    NFSv3: FIx bug when using chacl and chmod to change acl · fe1e8dbe
    Su Yanjun authored
    We find a bug when running test under nfsv3  as below.
    1)
    chacl u::r--,g::rwx,o:rw- file1
    2)
    chmod u+w file1
    3)
    chacl -l file1
    
    We expect u::rw-, but it shows u::r--, more likely it returns the
    cached acl in inode.
    
    We dig the code find that the code path is different.
    
    chacl->..->__nfs3_proc_setacls->nfs_zap_acl_cache
    Then nfs_zap_acl_cache clears the NFS_INO_INVALID_ACL in
    NFS_I(inode)->cache_validity.
    
    chmod->..->nfs3_proc_setattr
    Because NFS_INO_INVALID_ACL has been cleared by chacl path,
    nfs_zap_acl_cache wont be called.
    
    nfs_setattr_update_inode will set NFS_INO_INVALID_ACL so let it
    before nfs_zap_acl_cache call.
    Signed-off-by: default avatarSu Yanjun <suyanjun218@gmail.com>
    Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
    fe1e8dbe
nfs3proc.c 25.5 KB