diff options
Diffstat (limited to 'fs/nfs/nfs42proc.c')
| -rw-r--r-- | fs/nfs/nfs42proc.c | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/fs/nfs/nfs42proc.c b/fs/nfs/nfs42proc.c index 068c45b3bc1a..6dab9e408372 100644 --- a/fs/nfs/nfs42proc.c +++ b/fs/nfs/nfs42proc.c @@ -78,10 +78,15 @@ static int _nfs42_proc_fallocate(struct rpc_message *msg, struct file *filep,  	status = nfs4_call_sync(server->client, server, msg,  				&args.seq_args, &res.seq_res, 0); -	if (status == 0) +	if (status == 0) { +		if (nfs_should_remove_suid(inode)) { +			spin_lock(&inode->i_lock); +			nfs_set_cache_invalid(inode, NFS_INO_INVALID_MODE); +			spin_unlock(&inode->i_lock); +		}  		status = nfs_post_op_update_inode_force_wcc(inode,  							    res.falloc_fattr); - +	}  	if (msg->rpc_proc == &nfs4_procedures[NFSPROC4_CLNT_ALLOCATE])  		trace_nfs4_fallocate(inode, &args, status);  	else |