diff options
Diffstat (limited to 'fs/nfs/nfs4proc.c')
| -rw-r--r-- | fs/nfs/nfs4proc.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index c08c46a3b8cd..dbfa18900e25 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -2589,7 +2589,8 @@ static inline void nfs4_exclusive_attrset(struct nfs4_opendata *opendata,  	/* Except MODE, it seems harmless of setting twice. */  	if (opendata->o_arg.createmode != NFS4_CREATE_EXCLUSIVE && -		attrset[1] & FATTR4_WORD1_MODE) +		(attrset[1] & FATTR4_WORD1_MODE || +		 attrset[2] & FATTR4_WORD2_MODE_UMASK))  		sattr->ia_valid &= ~ATTR_MODE;  	if (attrset[2] & FATTR4_WORD2_SECURITY_LABEL) @@ -8416,6 +8417,7 @@ static void nfs4_layoutget_release(void *calldata)  	size_t max_pages = max_response_pages(server);  	dprintk("--> %s\n", __func__); +	nfs4_sequence_free_slot(&lgp->res.seq_res);  	nfs4_free_pages(lgp->args.layout.pages, max_pages);  	pnfs_put_layout_hdr(NFS_I(inode)->layout);  	put_nfs_open_context(lgp->args.ctx); @@ -8490,7 +8492,6 @@ nfs4_proc_layoutget(struct nfs4_layoutget *lgp, long *timeout, gfp_t gfp_flags)  	/* if layoutp->len is 0, nfs4_layoutget_prepare called rpc_exit */  	if (status == 0 && lgp->res.layoutp->len)  		lseg = pnfs_layout_process(lgp); -	nfs4_sequence_free_slot(&lgp->res.seq_res);  	rpc_put_task(task);  	dprintk("<-- %s status=%d\n", __func__, status);  	if (status)  |