diff options
Diffstat (limited to 'fs/nfs/nfs4proc.c')
| -rw-r--r-- | fs/nfs/nfs4proc.c | 12 | 
1 files changed, 6 insertions, 6 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 69dc20a743f9..e7f8d5ff2581 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -158,8 +158,6 @@ static int nfs4_map_errors(int err)  		return -EACCES;  	case -NFS4ERR_MINOR_VERS_MISMATCH:  		return -EPROTONOSUPPORT; -	case -NFS4ERR_ACCESS: -		return -EACCES;  	case -NFS4ERR_FILE_OPEN:  		return -EBUSY;  	default: @@ -344,7 +342,7 @@ static int nfs4_delay(struct rpc_clnt *clnt, long *timeout)  /* This is the error handling routine for processes that are allowed   * to sleep.   */ -static int nfs4_handle_exception(struct nfs_server *server, int errorcode, struct nfs4_exception *exception) +int nfs4_handle_exception(struct nfs_server *server, int errorcode, struct nfs4_exception *exception)  {  	struct nfs_client *clp = server->nfs_client;  	struct nfs4_state *state = exception->state; @@ -7704,6 +7702,9 @@ nfs4_proc_layoutget(struct nfs4_layoutget *lgp, gfp_t gfp_flags)  	dprintk("--> %s\n", __func__); +	/* nfs4_layoutget_release calls pnfs_put_layout_hdr */ +	pnfs_get_layout_hdr(NFS_I(inode)->layout); +  	lgp->args.layout.pages = nfs4_alloc_pages(max_pages, gfp_flags);  	if (!lgp->args.layout.pages) {  		nfs4_layoutget_release(lgp); @@ -7716,9 +7717,6 @@ nfs4_proc_layoutget(struct nfs4_layoutget *lgp, gfp_t gfp_flags)  	lgp->res.seq_res.sr_slot = NULL;  	nfs4_init_sequence(&lgp->args.seq_args, &lgp->res.seq_res, 0); -	/* nfs4_layoutget_release calls pnfs_put_layout_hdr */ -	pnfs_get_layout_hdr(NFS_I(inode)->layout); -  	task = rpc_run_task(&task_setup_data);  	if (IS_ERR(task))  		return ERR_CAST(task); @@ -8426,6 +8424,8 @@ static const struct nfs4_minor_version_ops nfs_v4_2_minor_ops = {  		| NFS_CAP_POSIX_LOCK  		| NFS_CAP_STATEID_NFSV41  		| NFS_CAP_ATOMIC_OPEN_V1 +		| NFS_CAP_ALLOCATE +		| NFS_CAP_DEALLOCATE  		| NFS_CAP_SEEK,  	.init_client = nfs41_init_client,  	.shutdown_client = nfs41_shutdown_client,  |