diff options
| author | Benny Halevy <bhalevy@panasas.com> | 2011-05-22 12:52:37 -0400 |
|---|---|---|
| committer | Boaz Harrosh <bharrosh@panasas.com> | 2011-05-29 13:54:36 -0400 |
| commit | cbe8260369c9f88eafa035cd327dc3e02fad528c (patch) | |
| tree | 13316d9b1a761cf58c35e663375b72f6ac07c5d2 /include | |
| parent | 04f83450388e87d86b387cf4a27b81eb7e69de7d (diff) | |
pnfs: layoutreturn
NFSv4.1 LAYOUTRETURN implementation
Currently, does not support layout-type payload encoding.
Signed-off-by: Alexandros Batsakis <batsakis@netapp.com>
Signed-off-by: Andy Adamson <andros@citi.umich.edu>
Signed-off-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Dean Hildebrand <dhildeb@us.ibm.com>
Signed-off-by: Fred Isaman <iisaman@citi.umich.edu>
Signed-off-by: Fred Isaman <iisaman@netapp.com>
Signed-off-by: Marc Eshel <eshel@almaden.ibm.com>
Signed-off-by: Zhang Jingwang <zhangjingwang@nrchpc.ac.cn>
[call pnfs_return_layout right before pnfs_destroy_layout]
[remove assert_spin_locked from pnfs_clear_lseg_list]
[remove wait parameter from the layoutreturn path.]
[remove return_type field from nfs4_layoutreturn_args]
[remove range from nfs4_layoutreturn_args]
[no need to send layoutcommit from _pnfs_return_layout]
[don't wait on sync layoutreturn]
[fix layout stateid in layoutreturn args]
[fixed NULL deref in _pnfs_return_layout]
[removed recaim member of nfs4_layoutreturn_args]
Signed-off-by: Benny Halevy <bhalevy@panasas.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/nfs4.h | 1 | ||||
| -rw-r--r-- | include/linux/nfs_xdr.h | 21 |
2 files changed, 22 insertions, 0 deletions
diff --git a/include/linux/nfs4.h b/include/linux/nfs4.h index 178fafe0ff93..9376eaf26e15 100644 --- a/include/linux/nfs4.h +++ b/include/linux/nfs4.h | |||
| @@ -562,6 +562,7 @@ enum { | |||
| 562 | NFSPROC4_CLNT_LAYOUTGET, | 562 | NFSPROC4_CLNT_LAYOUTGET, |
| 563 | NFSPROC4_CLNT_GETDEVICEINFO, | 563 | NFSPROC4_CLNT_GETDEVICEINFO, |
| 564 | NFSPROC4_CLNT_LAYOUTCOMMIT, | 564 | NFSPROC4_CLNT_LAYOUTCOMMIT, |
| 565 | NFSPROC4_CLNT_LAYOUTRETURN, | ||
| 565 | }; | 566 | }; |
| 566 | 567 | ||
| 567 | /* nfs41 types */ | 568 | /* nfs41 types */ |
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 7c8ff0984a84..5e8444a11adf 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
| @@ -269,6 +269,27 @@ struct nfs4_layoutcommit_data { | |||
| 269 | struct nfs4_layoutcommit_res res; | 269 | struct nfs4_layoutcommit_res res; |
| 270 | }; | 270 | }; |
| 271 | 271 | ||
| 272 | struct nfs4_layoutreturn_args { | ||
| 273 | __u32 layout_type; | ||
| 274 | struct inode *inode; | ||
| 275 | nfs4_stateid stateid; | ||
| 276 | struct nfs4_sequence_args seq_args; | ||
| 277 | }; | ||
| 278 | |||
| 279 | struct nfs4_layoutreturn_res { | ||
| 280 | struct nfs4_sequence_res seq_res; | ||
| 281 | u32 lrs_present; | ||
| 282 | nfs4_stateid stateid; | ||
| 283 | }; | ||
| 284 | |||
| 285 | struct nfs4_layoutreturn { | ||
| 286 | struct nfs4_layoutreturn_args args; | ||
| 287 | struct nfs4_layoutreturn_res res; | ||
| 288 | struct rpc_cred *cred; | ||
| 289 | struct nfs_client *clp; | ||
| 290 | int rpc_status; | ||
| 291 | }; | ||
| 292 | |||
| 272 | /* | 293 | /* |
| 273 | * Arguments to the open call. | 294 | * Arguments to the open call. |
| 274 | */ | 295 | */ |
