aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStanislav Kinsbursky <skinsbursky@parallels.com>2012-11-14 10:22:07 -0500
committerJ. Bruce Fields <bfields@redhat.com>2012-11-15 07:40:50 -0500
commit3320fef19b542b8df9606bd8e63990dc2a3fb330 (patch)
treefe68d7d40178040eb8691fffb711d7c413a6ce9e
parent73758fed711b847d833b9b0db59137eaeed06485 (diff)
nfsd: use service net instead of hard-coded init_net
This patch replaces init_net by SVC_NET(), where possible and also passes proper context to nested functions where required. Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
-rw-r--r--fs/nfsd/nfs4proc.c13
-rw-r--r--fs/nfsd/nfs4state.c63
-rw-r--r--fs/nfsd/state.h2
-rw-r--r--fs/nfsd/xdr4.h2
4 files changed, 49 insertions, 31 deletions
diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
index f955176f1b6f..1d2396b79574 100644
--- a/fs/nfsd/nfs4proc.c
+++ b/fs/nfsd/nfs4proc.c
@@ -40,6 +40,7 @@
40#include "xdr4.h" 40#include "xdr4.h"
41#include "vfs.h" 41#include "vfs.h"
42#include "current_stateid.h" 42#include "current_stateid.h"
43#include "netns.h"
43 44
44#define NFSDDBG_FACILITY NFSDDBG_PROC 45#define NFSDDBG_FACILITY NFSDDBG_PROC
45 46
@@ -304,6 +305,8 @@ nfsd4_open(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
304{ 305{
305 __be32 status; 306 __be32 status;
306 struct nfsd4_compoundres *resp; 307 struct nfsd4_compoundres *resp;
308 struct net *net = SVC_NET(rqstp);
309 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
307 310
308 dprintk("NFSD: nfsd4_open filename %.*s op_openowner %p\n", 311 dprintk("NFSD: nfsd4_open filename %.*s op_openowner %p\n",
309 (int)open->op_fname.len, open->op_fname.data, 312 (int)open->op_fname.len, open->op_fname.data,
@@ -331,7 +334,7 @@ nfsd4_open(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
331 334
332 /* check seqid for replay. set nfs4_owner */ 335 /* check seqid for replay. set nfs4_owner */
333 resp = rqstp->rq_resp; 336 resp = rqstp->rq_resp;
334 status = nfsd4_process_open1(&resp->cstate, open); 337 status = nfsd4_process_open1(&resp->cstate, open, nn);
335 if (status == nfserr_replay_me) { 338 if (status == nfserr_replay_me) {
336 struct nfs4_replay *rp = &open->op_openowner->oo_owner.so_replay; 339 struct nfs4_replay *rp = &open->op_openowner->oo_owner.so_replay;
337 fh_put(&cstate->current_fh); 340 fh_put(&cstate->current_fh);
@@ -354,10 +357,10 @@ nfsd4_open(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
354 /* Openowner is now set, so sequence id will get bumped. Now we need 357 /* Openowner is now set, so sequence id will get bumped. Now we need
355 * these checks before we do any creates: */ 358 * these checks before we do any creates: */
356 status = nfserr_grace; 359 status = nfserr_grace;
357 if (locks_in_grace(SVC_NET(rqstp)) && open->op_claim_type != NFS4_OPEN_CLAIM_PREVIOUS) 360 if (locks_in_grace(net) && open->op_claim_type != NFS4_OPEN_CLAIM_PREVIOUS)
358 goto out; 361 goto out;
359 status = nfserr_no_grace; 362 status = nfserr_no_grace;
360 if (!locks_in_grace(SVC_NET(rqstp)) && open->op_claim_type == NFS4_OPEN_CLAIM_PREVIOUS) 363 if (!locks_in_grace(net) && open->op_claim_type == NFS4_OPEN_CLAIM_PREVIOUS)
361 goto out; 364 goto out;
362 365
363 switch (open->op_claim_type) { 366 switch (open->op_claim_type) {
@@ -370,7 +373,9 @@ nfsd4_open(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
370 break; 373 break;
371 case NFS4_OPEN_CLAIM_PREVIOUS: 374 case NFS4_OPEN_CLAIM_PREVIOUS:
372 open->op_openowner->oo_flags |= NFS4_OO_CONFIRMED; 375 open->op_openowner->oo_flags |= NFS4_OO_CONFIRMED;
373 status = nfs4_check_open_reclaim(&open->op_clientid, cstate->minorversion); 376 status = nfs4_check_open_reclaim(&open->op_clientid,
377 cstate->minorversion,
378 nn);
374 if (status) 379 if (status)
375 goto out; 380 goto out;
376 case NFS4_OPEN_CLAIM_FH: 381 case NFS4_OPEN_CLAIM_FH:
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index a8e406449ef6..996a8a58944d 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -2620,14 +2620,13 @@ static __be32 nfsd4_check_seqid(struct nfsd4_compound_state *cstate, struct nfs4
2620 2620
2621__be32 2621__be32
2622nfsd4_process_open1(struct nfsd4_compound_state *cstate, 2622nfsd4_process_open1(struct nfsd4_compound_state *cstate,
2623 struct nfsd4_open *open) 2623 struct nfsd4_open *open, struct nfsd_net *nn)
2624{ 2624{
2625 clientid_t *clientid = &open->op_clientid; 2625 clientid_t *clientid = &open->op_clientid;
2626 struct nfs4_client *clp = NULL; 2626 struct nfs4_client *clp = NULL;
2627 unsigned int strhashval; 2627 unsigned int strhashval;
2628 struct nfs4_openowner *oo = NULL; 2628 struct nfs4_openowner *oo = NULL;
2629 __be32 status; 2629 __be32 status;
2630 struct nfsd_net *nn = net_generic(&init_net, nfsd_net_id);
2631 2630
2632 if (STALE_CLIENTID(&open->op_clientid, nn)) 2631 if (STALE_CLIENTID(&open->op_clientid, nn))
2633 return nfserr_stale_clientid; 2632 return nfserr_stale_clientid;
@@ -3408,10 +3407,11 @@ static __be32 nfsd4_validate_stateid(struct nfs4_client *cl, stateid_t *stateid)
3408 return nfs_ok; 3407 return nfs_ok;
3409} 3408}
3410 3409
3411static __be32 nfsd4_lookup_stateid(stateid_t *stateid, unsigned char typemask, struct nfs4_stid **s, bool sessions) 3410static __be32 nfsd4_lookup_stateid(stateid_t *stateid, unsigned char typemask,
3411 struct nfs4_stid **s, bool sessions,
3412 struct nfsd_net *nn)
3412{ 3413{
3413 struct nfs4_client *cl; 3414 struct nfs4_client *cl;
3414 struct nfsd_net *nn = net_generic(&init_net, nfsd_net_id);
3415 3415
3416 if (ZERO_STATEID(stateid) || ONE_STATEID(stateid)) 3416 if (ZERO_STATEID(stateid) || ONE_STATEID(stateid))
3417 return nfserr_bad_stateid; 3417 return nfserr_bad_stateid;
@@ -3439,6 +3439,7 @@ nfs4_preprocess_stateid_op(struct net *net, struct nfsd4_compound_state *cstate,
3439 struct nfs4_delegation *dp = NULL; 3439 struct nfs4_delegation *dp = NULL;
3440 struct svc_fh *current_fh = &cstate->current_fh; 3440 struct svc_fh *current_fh = &cstate->current_fh;
3441 struct inode *ino = current_fh->fh_dentry->d_inode; 3441 struct inode *ino = current_fh->fh_dentry->d_inode;
3442 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
3442 __be32 status; 3443 __be32 status;
3443 3444
3444 if (filpp) 3445 if (filpp)
@@ -3450,7 +3451,8 @@ nfs4_preprocess_stateid_op(struct net *net, struct nfsd4_compound_state *cstate,
3450 if (ZERO_STATEID(stateid) || ONE_STATEID(stateid)) 3451 if (ZERO_STATEID(stateid) || ONE_STATEID(stateid))
3451 return check_special_stateids(net, current_fh, stateid, flags); 3452 return check_special_stateids(net, current_fh, stateid, flags);
3452 3453
3453 status = nfsd4_lookup_stateid(stateid, NFS4_DELEG_STID|NFS4_OPEN_STID|NFS4_LOCK_STID, &s, cstate->minorversion); 3454 status = nfsd4_lookup_stateid(stateid, NFS4_DELEG_STID|NFS4_OPEN_STID|NFS4_LOCK_STID,
3455 &s, cstate->minorversion, nn);
3454 if (status) 3456 if (status)
3455 return status; 3457 return status;
3456 status = check_stateid_generation(stateid, &s->sc_stateid, nfsd4_has_session(cstate)); 3458 status = check_stateid_generation(stateid, &s->sc_stateid, nfsd4_has_session(cstate));
@@ -3591,7 +3593,8 @@ static __be32 nfs4_seqid_op_checks(struct nfsd4_compound_state *cstate, stateid_
3591static __be32 3593static __be32
3592nfs4_preprocess_seqid_op(struct nfsd4_compound_state *cstate, u32 seqid, 3594nfs4_preprocess_seqid_op(struct nfsd4_compound_state *cstate, u32 seqid,
3593 stateid_t *stateid, char typemask, 3595 stateid_t *stateid, char typemask,
3594 struct nfs4_ol_stateid **stpp) 3596 struct nfs4_ol_stateid **stpp,
3597 struct nfsd_net *nn)
3595{ 3598{
3596 __be32 status; 3599 __be32 status;
3597 struct nfs4_stid *s; 3600 struct nfs4_stid *s;
@@ -3600,7 +3603,8 @@ nfs4_preprocess_seqid_op(struct nfsd4_compound_state *cstate, u32 seqid,
3600 seqid, STATEID_VAL(stateid)); 3603 seqid, STATEID_VAL(stateid));
3601 3604
3602 *stpp = NULL; 3605 *stpp = NULL;
3603 status = nfsd4_lookup_stateid(stateid, typemask, &s, cstate->minorversion); 3606 status = nfsd4_lookup_stateid(stateid, typemask, &s,
3607 cstate->minorversion, nn);
3604 if (status) 3608 if (status)
3605 return status; 3609 return status;
3606 *stpp = openlockstateid(s); 3610 *stpp = openlockstateid(s);
@@ -3609,13 +3613,14 @@ nfs4_preprocess_seqid_op(struct nfsd4_compound_state *cstate, u32 seqid,
3609 return nfs4_seqid_op_checks(cstate, stateid, seqid, *stpp); 3613 return nfs4_seqid_op_checks(cstate, stateid, seqid, *stpp);
3610} 3614}
3611 3615
3612static __be32 nfs4_preprocess_confirmed_seqid_op(struct nfsd4_compound_state *cstate, u32 seqid, stateid_t *stateid, struct nfs4_ol_stateid **stpp) 3616static __be32 nfs4_preprocess_confirmed_seqid_op(struct nfsd4_compound_state *cstate, u32 seqid,
3617 stateid_t *stateid, struct nfs4_ol_stateid **stpp, struct nfsd_net *nn)
3613{ 3618{
3614 __be32 status; 3619 __be32 status;
3615 struct nfs4_openowner *oo; 3620 struct nfs4_openowner *oo;
3616 3621
3617 status = nfs4_preprocess_seqid_op(cstate, seqid, stateid, 3622 status = nfs4_preprocess_seqid_op(cstate, seqid, stateid,
3618 NFS4_OPEN_STID, stpp); 3623 NFS4_OPEN_STID, stpp, nn);
3619 if (status) 3624 if (status)
3620 return status; 3625 return status;
3621 oo = openowner((*stpp)->st_stateowner); 3626 oo = openowner((*stpp)->st_stateowner);
@@ -3631,6 +3636,7 @@ nfsd4_open_confirm(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
3631 __be32 status; 3636 __be32 status;
3632 struct nfs4_openowner *oo; 3637 struct nfs4_openowner *oo;
3633 struct nfs4_ol_stateid *stp; 3638 struct nfs4_ol_stateid *stp;
3639 struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id);
3634 3640
3635 dprintk("NFSD: nfsd4_open_confirm on file %.*s\n", 3641 dprintk("NFSD: nfsd4_open_confirm on file %.*s\n",
3636 (int)cstate->current_fh.fh_dentry->d_name.len, 3642 (int)cstate->current_fh.fh_dentry->d_name.len,
@@ -3644,7 +3650,7 @@ nfsd4_open_confirm(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
3644 3650
3645 status = nfs4_preprocess_seqid_op(cstate, 3651 status = nfs4_preprocess_seqid_op(cstate,
3646 oc->oc_seqid, &oc->oc_req_stateid, 3652 oc->oc_seqid, &oc->oc_req_stateid,
3647 NFS4_OPEN_STID, &stp); 3653 NFS4_OPEN_STID, &stp, nn);
3648 if (status) 3654 if (status)
3649 goto out; 3655 goto out;
3650 oo = openowner(stp->st_stateowner); 3656 oo = openowner(stp->st_stateowner);
@@ -3708,6 +3714,7 @@ nfsd4_open_downgrade(struct svc_rqst *rqstp,
3708{ 3714{
3709 __be32 status; 3715 __be32 status;
3710 struct nfs4_ol_stateid *stp; 3716 struct nfs4_ol_stateid *stp;
3717 struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id);
3711 3718
3712 dprintk("NFSD: nfsd4_open_downgrade on file %.*s\n", 3719 dprintk("NFSD: nfsd4_open_downgrade on file %.*s\n",
3713 (int)cstate->current_fh.fh_dentry->d_name.len, 3720 (int)cstate->current_fh.fh_dentry->d_name.len,
@@ -3720,7 +3727,7 @@ nfsd4_open_downgrade(struct svc_rqst *rqstp,
3720 3727
3721 nfs4_lock_state(); 3728 nfs4_lock_state();
3722 status = nfs4_preprocess_confirmed_seqid_op(cstate, od->od_seqid, 3729 status = nfs4_preprocess_confirmed_seqid_op(cstate, od->od_seqid,
3723 &od->od_stateid, &stp); 3730 &od->od_stateid, &stp, nn);
3724 if (status) 3731 if (status)
3725 goto out; 3732 goto out;
3726 status = nfserr_inval; 3733 status = nfserr_inval;
@@ -3783,6 +3790,8 @@ nfsd4_close(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
3783 __be32 status; 3790 __be32 status;
3784 struct nfs4_openowner *oo; 3791 struct nfs4_openowner *oo;
3785 struct nfs4_ol_stateid *stp; 3792 struct nfs4_ol_stateid *stp;
3793 struct net *net = SVC_NET(rqstp);
3794 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
3786 3795
3787 dprintk("NFSD: nfsd4_close on file %.*s\n", 3796 dprintk("NFSD: nfsd4_close on file %.*s\n",
3788 (int)cstate->current_fh.fh_dentry->d_name.len, 3797 (int)cstate->current_fh.fh_dentry->d_name.len,
@@ -3792,7 +3801,7 @@ nfsd4_close(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
3792 status = nfs4_preprocess_seqid_op(cstate, close->cl_seqid, 3801 status = nfs4_preprocess_seqid_op(cstate, close->cl_seqid,
3793 &close->cl_stateid, 3802 &close->cl_stateid,
3794 NFS4_OPEN_STID|NFS4_CLOSED_STID, 3803 NFS4_OPEN_STID|NFS4_CLOSED_STID,
3795 &stp); 3804 &stp, nn);
3796 if (status) 3805 if (status)
3797 goto out; 3806 goto out;
3798 oo = openowner(stp->st_stateowner); 3807 oo = openowner(stp->st_stateowner);
@@ -3831,12 +3840,14 @@ nfsd4_delegreturn(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
3831 stateid_t *stateid = &dr->dr_stateid; 3840 stateid_t *stateid = &dr->dr_stateid;
3832 struct nfs4_stid *s; 3841 struct nfs4_stid *s;
3833 __be32 status; 3842 __be32 status;
3843 struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id);
3834 3844
3835 if ((status = fh_verify(rqstp, &cstate->current_fh, S_IFREG, 0))) 3845 if ((status = fh_verify(rqstp, &cstate->current_fh, S_IFREG, 0)))
3836 return status; 3846 return status;
3837 3847
3838 nfs4_lock_state(); 3848 nfs4_lock_state();
3839 status = nfsd4_lookup_stateid(stateid, NFS4_DELEG_STID, &s, cstate->minorversion); 3849 status = nfsd4_lookup_stateid(stateid, NFS4_DELEG_STID, &s,
3850 cstate->minorversion, nn);
3840 if (status) 3851 if (status)
3841 goto out; 3852 goto out;
3842 dp = delegstateid(s); 3853 dp = delegstateid(s);
@@ -4085,7 +4096,8 @@ nfsd4_lock(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
4085 bool new_state = false; 4096 bool new_state = false;
4086 int lkflg; 4097 int lkflg;
4087 int err; 4098 int err;
4088 struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id); 4099 struct net *net = SVC_NET(rqstp);
4100 struct nfsd_net *nn = net_generic(net, nfsd_net_id);
4089 4101
4090 dprintk("NFSD: nfsd4_lock: start=%Ld length=%Ld\n", 4102 dprintk("NFSD: nfsd4_lock: start=%Ld length=%Ld\n",
4091 (long long) lock->lk_offset, 4103 (long long) lock->lk_offset,
@@ -4119,7 +4131,7 @@ nfsd4_lock(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
4119 status = nfs4_preprocess_confirmed_seqid_op(cstate, 4131 status = nfs4_preprocess_confirmed_seqid_op(cstate,
4120 lock->lk_new_open_seqid, 4132 lock->lk_new_open_seqid,
4121 &lock->lk_new_open_stateid, 4133 &lock->lk_new_open_stateid,
4122 &open_stp); 4134 &open_stp, nn);
4123 if (status) 4135 if (status)
4124 goto out; 4136 goto out;
4125 open_sop = openowner(open_stp->st_stateowner); 4137 open_sop = openowner(open_stp->st_stateowner);
@@ -4133,7 +4145,7 @@ nfsd4_lock(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
4133 status = nfs4_preprocess_seqid_op(cstate, 4145 status = nfs4_preprocess_seqid_op(cstate,
4134 lock->lk_old_lock_seqid, 4146 lock->lk_old_lock_seqid,
4135 &lock->lk_old_lock_stateid, 4147 &lock->lk_old_lock_stateid,
4136 NFS4_LOCK_STID, &lock_stp); 4148 NFS4_LOCK_STID, &lock_stp, nn);
4137 if (status) 4149 if (status)
4138 goto out; 4150 goto out;
4139 lock_sop = lockowner(lock_stp->st_stateowner); 4151 lock_sop = lockowner(lock_stp->st_stateowner);
@@ -4144,10 +4156,10 @@ nfsd4_lock(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
4144 goto out; 4156 goto out;
4145 4157
4146 status = nfserr_grace; 4158 status = nfserr_grace;
4147 if (locks_in_grace(SVC_NET(rqstp)) && !lock->lk_reclaim) 4159 if (locks_in_grace(net) && !lock->lk_reclaim)
4148 goto out; 4160 goto out;
4149 status = nfserr_no_grace; 4161 status = nfserr_no_grace;
4150 if (!locks_in_grace(SVC_NET(rqstp)) && lock->lk_reclaim) 4162 if (!locks_in_grace(net) && lock->lk_reclaim)
4151 goto out; 4163 goto out;
4152 4164
4153 file_lock = locks_alloc_lock(); 4165 file_lock = locks_alloc_lock();
@@ -4333,7 +4345,8 @@ nfsd4_locku(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
4333 struct file_lock *file_lock = NULL; 4345 struct file_lock *file_lock = NULL;
4334 __be32 status; 4346 __be32 status;
4335 int err; 4347 int err;
4336 4348 struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id);
4349
4337 dprintk("NFSD: nfsd4_locku: start=%Ld length=%Ld\n", 4350 dprintk("NFSD: nfsd4_locku: start=%Ld length=%Ld\n",
4338 (long long) locku->lu_offset, 4351 (long long) locku->lu_offset,
4339 (long long) locku->lu_length); 4352 (long long) locku->lu_length);
@@ -4344,7 +4357,8 @@ nfsd4_locku(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
4344 nfs4_lock_state(); 4357 nfs4_lock_state();
4345 4358
4346 status = nfs4_preprocess_seqid_op(cstate, locku->lu_seqid, 4359 status = nfs4_preprocess_seqid_op(cstate, locku->lu_seqid,
4347 &locku->lu_stateid, NFS4_LOCK_STID, &stp); 4360 &locku->lu_stateid, NFS4_LOCK_STID,
4361 &stp, nn);
4348 if (status) 4362 if (status)
4349 goto out; 4363 goto out;
4350 filp = find_any_file(stp->st_file); 4364 filp = find_any_file(stp->st_file);
@@ -4564,10 +4578,9 @@ nfsd4_find_reclaim_client(const char *recdir, struct nfsd_net *nn)
4564* Called from OPEN. Look for clientid in reclaim list. 4578* Called from OPEN. Look for clientid in reclaim list.
4565*/ 4579*/
4566__be32 4580__be32
4567nfs4_check_open_reclaim(clientid_t *clid, bool sessions) 4581nfs4_check_open_reclaim(clientid_t *clid, bool sessions, struct nfsd_net *nn)
4568{ 4582{
4569 struct nfs4_client *clp; 4583 struct nfs4_client *clp;
4570 struct nfsd_net *nn = net_generic(&init_net, nfsd_net_id);
4571 4584
4572 /* find clientid in conf_id_hashtbl */ 4585 /* find clientid in conf_id_hashtbl */
4573 clp = find_confirmed_client(clid, sessions, nn); 4586 clp = find_confirmed_client(clid, sessions, nn);
@@ -4583,7 +4596,7 @@ void nfsd_forget_clients(u64 num)
4583{ 4596{
4584 struct nfs4_client *clp, *next; 4597 struct nfs4_client *clp, *next;
4585 int count = 0; 4598 int count = 0;
4586 struct nfsd_net *nn = net_generic(&init_net, nfsd_net_id); 4599 struct nfsd_net *nn = net_generic(current->nsproxy->net_ns, nfsd_net_id);
4587 4600
4588 nfs4_lock_state(); 4601 nfs4_lock_state();
4589 list_for_each_entry_safe(clp, next, &nn->client_lru, cl_lru) { 4602 list_for_each_entry_safe(clp, next, &nn->client_lru, cl_lru) {
@@ -4897,8 +4910,8 @@ __nfs4_state_shutdown(struct net *net)
4897 unhash_delegation(dp); 4910 unhash_delegation(dp);
4898 } 4911 }
4899 4912
4900 nfsd4_client_tracking_exit(&init_net); 4913 nfsd4_client_tracking_exit(net);
4901 put_net(&init_net); 4914 put_net(net);
4902} 4915}
4903 4916
4904void 4917void
diff --git a/fs/nfsd/state.h b/fs/nfsd/state.h
index 26a912cdfe0c..bfe0106333cc 100644
--- a/fs/nfsd/state.h
+++ b/fs/nfsd/state.h
@@ -470,7 +470,7 @@ void nfs4_remove_reclaim_record(struct nfs4_client_reclaim *, struct nfsd_net *)
470extern void nfs4_release_reclaim(struct nfsd_net *); 470extern void nfs4_release_reclaim(struct nfsd_net *);
471extern struct nfs4_client_reclaim *nfsd4_find_reclaim_client(const char *recdir, 471extern struct nfs4_client_reclaim *nfsd4_find_reclaim_client(const char *recdir,
472 struct nfsd_net *nn); 472 struct nfsd_net *nn);
473extern __be32 nfs4_check_open_reclaim(clientid_t *clid, bool sessions); 473extern __be32 nfs4_check_open_reclaim(clientid_t *clid, bool sessions, struct nfsd_net *nn);
474extern void nfs4_free_openowner(struct nfs4_openowner *); 474extern void nfs4_free_openowner(struct nfs4_openowner *);
475extern void nfs4_free_lockowner(struct nfs4_lockowner *); 475extern void nfs4_free_lockowner(struct nfs4_lockowner *);
476extern int set_callback_cred(void); 476extern int set_callback_cred(void);
diff --git a/fs/nfsd/xdr4.h b/fs/nfsd/xdr4.h
index 71c5c47f2750..3c414c1be295 100644
--- a/fs/nfsd/xdr4.h
+++ b/fs/nfsd/xdr4.h
@@ -581,7 +581,7 @@ extern __be32 nfsd4_destroy_session(struct svc_rqst *,
581extern __be32 nfsd4_destroy_clientid(struct svc_rqst *, struct nfsd4_compound_state *, struct nfsd4_destroy_clientid *); 581extern __be32 nfsd4_destroy_clientid(struct svc_rqst *, struct nfsd4_compound_state *, struct nfsd4_destroy_clientid *);
582__be32 nfsd4_reclaim_complete(struct svc_rqst *, struct nfsd4_compound_state *, struct nfsd4_reclaim_complete *); 582__be32 nfsd4_reclaim_complete(struct svc_rqst *, struct nfsd4_compound_state *, struct nfsd4_reclaim_complete *);
583extern __be32 nfsd4_process_open1(struct nfsd4_compound_state *, 583extern __be32 nfsd4_process_open1(struct nfsd4_compound_state *,
584 struct nfsd4_open *open); 584 struct nfsd4_open *open, struct nfsd_net *nn);
585extern __be32 nfsd4_process_open2(struct svc_rqst *rqstp, 585extern __be32 nfsd4_process_open2(struct svc_rqst *rqstp,
586 struct svc_fh *current_fh, struct nfsd4_open *open); 586 struct svc_fh *current_fh, struct nfsd4_open *open);
587extern void nfsd4_cleanup_open_state(struct nfsd4_open *open, __be32 status); 587extern void nfsd4_cleanup_open_state(struct nfsd4_open *open, __be32 status);