diff options
author | Bryan Schumaker <bjschuma@netapp.com> | 2011-07-13 10:50:48 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2011-07-15 18:58:48 -0400 |
commit | 17456804546b78a1c13d2b934c8f50bbde141a38 (patch) | |
tree | d9585ae98e98101830068c9ab29556795a162942 /fs/nfsd/xdr4.h | |
parent | e1ca12dfb1be7fe8b82ca723a9b511f7d808bf81 (diff) |
NFSD: Added TEST_STATEID operation
This operation is used by the client to check the validity of a list of
stateids.
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/xdr4.h')
-rw-r--r-- | fs/nfsd/xdr4.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/fs/nfsd/xdr4.h b/fs/nfsd/xdr4.h index ed1784d31a60..02fb0e09de7f 100644 --- a/fs/nfsd/xdr4.h +++ b/fs/nfsd/xdr4.h | |||
@@ -342,6 +342,20 @@ struct nfsd4_setclientid_confirm { | |||
342 | nfs4_verifier sc_confirm; | 342 | nfs4_verifier sc_confirm; |
343 | }; | 343 | }; |
344 | 344 | ||
345 | struct nfsd4_saved_compoundargs { | ||
346 | __be32 *p; | ||
347 | __be32 *end; | ||
348 | int pagelen; | ||
349 | struct page **pagelist; | ||
350 | }; | ||
351 | |||
352 | struct nfsd4_test_stateid { | ||
353 | __be32 ts_num_ids; | ||
354 | __be32 ts_has_session; | ||
355 | struct nfsd4_compoundargs *ts_saved_args; | ||
356 | struct nfsd4_saved_compoundargs ts_savedp; | ||
357 | }; | ||
358 | |||
345 | struct nfsd4_free_stateid { | 359 | struct nfsd4_free_stateid { |
346 | stateid_t fr_stateid; /* request */ | 360 | stateid_t fr_stateid; /* request */ |
347 | __be32 fr_status; /* response */ | 361 | __be32 fr_status; /* response */ |
@@ -437,6 +451,7 @@ struct nfsd4_op { | |||
437 | struct nfsd4_destroy_session destroy_session; | 451 | struct nfsd4_destroy_session destroy_session; |
438 | struct nfsd4_sequence sequence; | 452 | struct nfsd4_sequence sequence; |
439 | struct nfsd4_reclaim_complete reclaim_complete; | 453 | struct nfsd4_reclaim_complete reclaim_complete; |
454 | struct nfsd4_test_stateid test_stateid; | ||
440 | struct nfsd4_free_stateid free_stateid; | 455 | struct nfsd4_free_stateid free_stateid; |
441 | } u; | 456 | } u; |
442 | struct nfs4_replay * replay; | 457 | struct nfs4_replay * replay; |
@@ -570,6 +585,8 @@ extern __be32 nfsd4_delegreturn(struct svc_rqst *rqstp, | |||
570 | struct nfsd4_compound_state *, struct nfsd4_delegreturn *dr); | 585 | struct nfsd4_compound_state *, struct nfsd4_delegreturn *dr); |
571 | extern __be32 nfsd4_renew(struct svc_rqst *rqstp, | 586 | extern __be32 nfsd4_renew(struct svc_rqst *rqstp, |
572 | struct nfsd4_compound_state *, clientid_t *clid); | 587 | struct nfsd4_compound_state *, clientid_t *clid); |
588 | extern __be32 nfsd4_test_stateid(struct svc_rqst *rqstp, | ||
589 | struct nfsd4_compound_state *, struct nfsd4_test_stateid *test_stateid); | ||
573 | extern __be32 nfsd4_free_stateid(struct svc_rqst *rqstp, | 590 | extern __be32 nfsd4_free_stateid(struct svc_rqst *rqstp, |
574 | struct nfsd4_compound_state *, struct nfsd4_free_stateid *free_stateid); | 591 | struct nfsd4_compound_state *, struct nfsd4_free_stateid *free_stateid); |
575 | #endif | 592 | #endif |