diff options
Diffstat (limited to 'fs/nfsd/xdr4.h')
-rw-r--r-- | fs/nfsd/xdr4.h | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/fs/nfsd/xdr4.h b/fs/nfsd/xdr4.h index 366401e1a536..d2a8d04428c7 100644 --- a/fs/nfsd/xdr4.h +++ b/fs/nfsd/xdr4.h | |||
@@ -342,6 +342,25 @@ 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 | |||
359 | struct nfsd4_free_stateid { | ||
360 | stateid_t fr_stateid; /* request */ | ||
361 | __be32 fr_status; /* response */ | ||
362 | }; | ||
363 | |||
345 | /* also used for NVERIFY */ | 364 | /* also used for NVERIFY */ |
346 | struct nfsd4_verify { | 365 | struct nfsd4_verify { |
347 | u32 ve_bmval[3]; /* request */ | 366 | u32 ve_bmval[3]; /* request */ |
@@ -432,10 +451,14 @@ struct nfsd4_op { | |||
432 | struct nfsd4_destroy_session destroy_session; | 451 | struct nfsd4_destroy_session destroy_session; |
433 | struct nfsd4_sequence sequence; | 452 | struct nfsd4_sequence sequence; |
434 | struct nfsd4_reclaim_complete reclaim_complete; | 453 | struct nfsd4_reclaim_complete reclaim_complete; |
454 | struct nfsd4_test_stateid test_stateid; | ||
455 | struct nfsd4_free_stateid free_stateid; | ||
435 | } u; | 456 | } u; |
436 | struct nfs4_replay * replay; | 457 | struct nfs4_replay * replay; |
437 | }; | 458 | }; |
438 | 459 | ||
460 | bool nfsd4_cache_this_op(struct nfsd4_op *); | ||
461 | |||
439 | struct nfsd4_compoundargs { | 462 | struct nfsd4_compoundargs { |
440 | /* scratch variables for XDR decode */ | 463 | /* scratch variables for XDR decode */ |
441 | __be32 * p; | 464 | __be32 * p; |
@@ -458,6 +481,7 @@ struct nfsd4_compoundargs { | |||
458 | u32 opcnt; | 481 | u32 opcnt; |
459 | struct nfsd4_op *ops; | 482 | struct nfsd4_op *ops; |
460 | struct nfsd4_op iops[8]; | 483 | struct nfsd4_op iops[8]; |
484 | int cachetype; | ||
461 | }; | 485 | }; |
462 | 486 | ||
463 | struct nfsd4_compoundres { | 487 | struct nfsd4_compoundres { |
@@ -559,11 +583,15 @@ extern __be32 | |||
559 | nfsd4_release_lockowner(struct svc_rqst *rqstp, | 583 | nfsd4_release_lockowner(struct svc_rqst *rqstp, |
560 | struct nfsd4_compound_state *, | 584 | struct nfsd4_compound_state *, |
561 | struct nfsd4_release_lockowner *rlockowner); | 585 | struct nfsd4_release_lockowner *rlockowner); |
562 | extern void nfsd4_release_compoundargs(struct nfsd4_compoundargs *); | 586 | extern int nfsd4_release_compoundargs(void *rq, __be32 *p, void *resp); |
563 | extern __be32 nfsd4_delegreturn(struct svc_rqst *rqstp, | 587 | extern __be32 nfsd4_delegreturn(struct svc_rqst *rqstp, |
564 | struct nfsd4_compound_state *, struct nfsd4_delegreturn *dr); | 588 | struct nfsd4_compound_state *, struct nfsd4_delegreturn *dr); |
565 | extern __be32 nfsd4_renew(struct svc_rqst *rqstp, | 589 | extern __be32 nfsd4_renew(struct svc_rqst *rqstp, |
566 | struct nfsd4_compound_state *, clientid_t *clid); | 590 | struct nfsd4_compound_state *, clientid_t *clid); |
591 | extern __be32 nfsd4_test_stateid(struct svc_rqst *rqstp, | ||
592 | struct nfsd4_compound_state *, struct nfsd4_test_stateid *test_stateid); | ||
593 | extern __be32 nfsd4_free_stateid(struct svc_rqst *rqstp, | ||
594 | struct nfsd4_compound_state *, struct nfsd4_free_stateid *free_stateid); | ||
567 | #endif | 595 | #endif |
568 | 596 | ||
569 | /* | 597 | /* |