diff options
author | Weston Andros Adamson <dros@netapp.com> | 2011-03-24 16:48:21 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2011-03-24 17:01:41 -0400 |
commit | 35124a0994fc02545b14b9fa3aad000b3331f1c0 (patch) | |
tree | 5149267f387199fd9ca2718c74d86b6779013501 /fs/nfs/nfs4proc.c | |
parent | ef31153786bc1e4304e6b9422cc8b9efef455611 (diff) |
Cleanup XDR parsing for LAYOUTGET, GETDEVICEINFO
changes LAYOUTGET and GETDEVICEINFO XDR parsing to:
- not use vmap, which doesn't work on incoherent archs
- use xdr_stream parsing for all xdr
Signed-off-by: Weston Andros Adamson <dros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4proc.c')
-rw-r--r-- | fs/nfs/nfs4proc.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 43045fa4471..8f071314e94 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -5526,8 +5526,6 @@ static void nfs4_layoutget_release(void *calldata) | |||
5526 | struct nfs4_layoutget *lgp = calldata; | 5526 | struct nfs4_layoutget *lgp = calldata; |
5527 | 5527 | ||
5528 | dprintk("--> %s\n", __func__); | 5528 | dprintk("--> %s\n", __func__); |
5529 | if (lgp->res.layout.buf != NULL) | ||
5530 | free_page((unsigned long) lgp->res.layout.buf); | ||
5531 | put_nfs_open_context(lgp->args.ctx); | 5529 | put_nfs_open_context(lgp->args.ctx); |
5532 | kfree(calldata); | 5530 | kfree(calldata); |
5533 | dprintk("<-- %s\n", __func__); | 5531 | dprintk("<-- %s\n", __func__); |
@@ -5559,12 +5557,7 @@ int nfs4_proc_layoutget(struct nfs4_layoutget *lgp) | |||
5559 | 5557 | ||
5560 | dprintk("--> %s\n", __func__); | 5558 | dprintk("--> %s\n", __func__); |
5561 | 5559 | ||
5562 | lgp->res.layout.buf = (void *)__get_free_page(GFP_NOFS); | 5560 | lgp->res.layoutp = &lgp->args.layout; |
5563 | if (lgp->res.layout.buf == NULL) { | ||
5564 | nfs4_layoutget_release(lgp); | ||
5565 | return -ENOMEM; | ||
5566 | } | ||
5567 | |||
5568 | lgp->res.seq_res.sr_slot = NULL; | 5561 | lgp->res.seq_res.sr_slot = NULL; |
5569 | task = rpc_run_task(&task_setup_data); | 5562 | task = rpc_run_task(&task_setup_data); |
5570 | if (IS_ERR(task)) | 5563 | if (IS_ERR(task)) |