aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfsd/nfs4state.c
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2005-09-13 04:25:37 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-09-13 11:22:31 -0400
commitf2327d9adb1e948a7041128e971effd8d6e2d42c (patch)
treec71c0eaee80dac069b7bb4f7d2e14bcbcfee14fe /fs/nfsd/nfs4state.c
parent849823c52d9c96cf777038670bb0ee3a291ca69d (diff)
[PATCH] nfsd4: move replay_owner
It seems more natural to move the setting of the replay_owner into the relevant procedure instead of doing it in nfsv4_proc_compound. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/nfsd/nfs4state.c')
-rw-r--r--fs/nfsd/nfs4state.c30
1 files changed, 20 insertions, 10 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index 109fd8c3d4f5..11405e530e70 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -2286,7 +2286,7 @@ check_replay:
2286} 2286}
2287 2287
2288int 2288int
2289nfsd4_open_confirm(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_open_confirm *oc) 2289nfsd4_open_confirm(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_open_confirm *oc, struct nfs4_stateowner **replay_owner)
2290{ 2290{
2291 int status; 2291 int status;
2292 struct nfs4_stateowner *sop; 2292 struct nfs4_stateowner *sop;
@@ -2320,8 +2320,10 @@ nfsd4_open_confirm(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfs
2320 2320
2321 nfsd4_create_clid_dir(sop->so_client); 2321 nfsd4_create_clid_dir(sop->so_client);
2322out: 2322out:
2323 if (oc->oc_stateowner) 2323 if (oc->oc_stateowner) {
2324 nfs4_get_stateowner(oc->oc_stateowner); 2324 nfs4_get_stateowner(oc->oc_stateowner);
2325 *replay_owner = oc->oc_stateowner;
2326 }
2325 nfs4_unlock_state(); 2327 nfs4_unlock_state();
2326 return status; 2328 return status;
2327} 2329}
@@ -2352,7 +2354,7 @@ reset_union_bmap_deny(unsigned long deny, unsigned long *bmap)
2352} 2354}
2353 2355
2354int 2356int
2355nfsd4_open_downgrade(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_open_downgrade *od) 2357nfsd4_open_downgrade(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_open_downgrade *od, struct nfs4_stateowner **replay_owner)
2356{ 2358{
2357 int status; 2359 int status;
2358 struct nfs4_stateid *stp; 2360 struct nfs4_stateid *stp;
@@ -2394,8 +2396,10 @@ nfsd4_open_downgrade(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct n
2394 memcpy(&od->od_stateid, &stp->st_stateid, sizeof(stateid_t)); 2396 memcpy(&od->od_stateid, &stp->st_stateid, sizeof(stateid_t));
2395 status = nfs_ok; 2397 status = nfs_ok;
2396out: 2398out:
2397 if (od->od_stateowner) 2399 if (od->od_stateowner) {
2398 nfs4_get_stateowner(od->od_stateowner); 2400 nfs4_get_stateowner(od->od_stateowner);
2401 *replay_owner = od->od_stateowner;
2402 }
2399 nfs4_unlock_state(); 2403 nfs4_unlock_state();
2400 return status; 2404 return status;
2401} 2405}
@@ -2404,7 +2408,7 @@ out:
2404 * nfs4_unlock_state() called after encode 2408 * nfs4_unlock_state() called after encode
2405 */ 2409 */
2406int 2410int
2407nfsd4_close(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_close *close) 2411nfsd4_close(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_close *close, struct nfs4_stateowner **replay_owner)
2408{ 2412{
2409 int status; 2413 int status;
2410 struct nfs4_stateid *stp; 2414 struct nfs4_stateid *stp;
@@ -2430,8 +2434,10 @@ nfsd4_close(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_clos
2430 /* release_state_owner() calls nfsd_close() if needed */ 2434 /* release_state_owner() calls nfsd_close() if needed */
2431 release_state_owner(stp, OPEN_STATE); 2435 release_state_owner(stp, OPEN_STATE);
2432out: 2436out:
2433 if (close->cl_stateowner) 2437 if (close->cl_stateowner) {
2434 nfs4_get_stateowner(close->cl_stateowner); 2438 nfs4_get_stateowner(close->cl_stateowner);
2439 *replay_owner = close->cl_stateowner;
2440 }
2435 nfs4_unlock_state(); 2441 nfs4_unlock_state();
2436 return status; 2442 return status;
2437} 2443}
@@ -2675,7 +2681,7 @@ check_lock_length(u64 offset, u64 length)
2675 * LOCK operation 2681 * LOCK operation
2676 */ 2682 */
2677int 2683int
2678nfsd4_lock(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_lock *lock) 2684nfsd4_lock(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_lock *lock, struct nfs4_stateowner **replay_owner)
2679{ 2685{
2680 struct nfs4_stateowner *open_sop = NULL; 2686 struct nfs4_stateowner *open_sop = NULL;
2681 struct nfs4_stateid *lock_stp; 2687 struct nfs4_stateid *lock_stp;
@@ -2835,8 +2841,10 @@ out_destroy_new_stateid:
2835 release_state_owner(lock_stp, LOCK_STATE); 2841 release_state_owner(lock_stp, LOCK_STATE);
2836 } 2842 }
2837out: 2843out:
2838 if (lock->lk_stateowner) 2844 if (lock->lk_stateowner) {
2839 nfs4_get_stateowner(lock->lk_stateowner); 2845 nfs4_get_stateowner(lock->lk_stateowner);
2846 *replay_owner = lock->lk_stateowner;
2847 }
2840 nfs4_unlock_state(); 2848 nfs4_unlock_state();
2841 return status; 2849 return status;
2842} 2850}
@@ -2925,7 +2933,7 @@ out:
2925} 2933}
2926 2934
2927int 2935int
2928nfsd4_locku(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_locku *locku) 2936nfsd4_locku(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_locku *locku, struct nfs4_stateowner **replay_owner)
2929{ 2937{
2930 struct nfs4_stateid *stp; 2938 struct nfs4_stateid *stp;
2931 struct file *filp = NULL; 2939 struct file *filp = NULL;
@@ -2981,8 +2989,10 @@ nfsd4_locku(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_lock
2981 memcpy(&locku->lu_stateid, &stp->st_stateid, sizeof(stateid_t)); 2989 memcpy(&locku->lu_stateid, &stp->st_stateid, sizeof(stateid_t));
2982 2990
2983out: 2991out:
2984 if (locku->lu_stateowner) 2992 if (locku->lu_stateowner) {
2985 nfs4_get_stateowner(locku->lu_stateowner); 2993 nfs4_get_stateowner(locku->lu_stateowner);
2994 *replay_owner = locku->lu_stateowner;
2995 }
2986 nfs4_unlock_state(); 2996 nfs4_unlock_state();
2987 return status; 2997 return status;
2988 2998