From: Dai Ngo Date: Tue, 19 Sep 2023 06:30:20 +0000 (-0700) Subject: nfs42: client needs to strip file mode's suid/sgid bit after ALLOCATE op X-Git-Tag: v6.6.7~1696^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f588d72bd95f748849685412b1f0c7959ca228cf;p=platform%2Fkernel%2Flinux-starfive.git nfs42: client needs to strip file mode's suid/sgid bit after ALLOCATE op The Linux NFS server strips the SUID and SGID from the file mode on ALLOCATE op. Modify _nfs42_proc_fallocate to add NFS_INO_REVAL_FORCED to nfs_set_cache_invalid's argument to force update of the file mode suid/sgid bit. Suggested-by: Trond Myklebust Signed-off-by: Dai Ngo Reviewed-by: Jeff Layton Tested-by: Jeff Layton Signed-off-by: Anna Schumaker --- diff --git a/fs/nfs/nfs42proc.c b/fs/nfs/nfs42proc.c index 063e00a..28704f9 100644 --- a/fs/nfs/nfs42proc.c +++ b/fs/nfs/nfs42proc.c @@ -81,7 +81,8 @@ static int _nfs42_proc_fallocate(struct rpc_message *msg, struct file *filep, if (status == 0) { if (nfs_should_remove_suid(inode)) { spin_lock(&inode->i_lock); - nfs_set_cache_invalid(inode, NFS_INO_INVALID_MODE); + nfs_set_cache_invalid(inode, + NFS_INO_REVAL_FORCED | NFS_INO_INVALID_MODE); spin_unlock(&inode->i_lock); } status = nfs_post_op_update_inode_force_wcc(inode,