aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/nfs/nfs4_fs.h2
-rw-r--r--fs/nfs/nfs4proc.c2
-rw-r--r--fs/nfs/nfs4state.c14
3 files changed, 7 insertions, 11 deletions
diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h
index a986f13e8039..cee871471e8d 100644
--- a/fs/nfs/nfs4_fs.h
+++ b/fs/nfs/nfs4_fs.h
@@ -108,7 +108,6 @@ struct nfs_unique_id {
108 */ 108 */
109struct nfs4_state_owner { 109struct nfs4_state_owner {
110 struct nfs_unique_id so_owner_id; 110 struct nfs_unique_id so_owner_id;
111 struct nfs_client *so_client;
112 struct nfs_server *so_server; 111 struct nfs_server *so_server;
113 struct rb_node so_client_node; 112 struct rb_node so_client_node;
114 113
@@ -118,7 +117,6 @@ struct nfs4_state_owner {
118 atomic_t so_count; 117 atomic_t so_count;
119 unsigned long so_flags; 118 unsigned long so_flags;
120 struct list_head so_states; 119 struct list_head so_states;
121 struct list_head so_delegations;
122 struct nfs_seqid_counter so_seqid; 120 struct nfs_seqid_counter so_seqid;
123 struct rpc_sequence so_sequence; 121 struct rpc_sequence so_sequence;
124}; 122};
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 243d6c72cfa1..de9ff1505a24 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -1350,7 +1350,7 @@ static void nfs4_open_prepare(struct rpc_task *task, void *calldata)
1350 } 1350 }
1351 /* Update sequence id. */ 1351 /* Update sequence id. */
1352 data->o_arg.id = sp->so_owner_id.id; 1352 data->o_arg.id = sp->so_owner_id.id;
1353 data->o_arg.clientid = sp->so_client->cl_clientid; 1353 data->o_arg.clientid = sp->so_server->nfs_client->cl_clientid;
1354 if (data->o_arg.claim == NFS4_OPEN_CLAIM_PREVIOUS) { 1354 if (data->o_arg.claim == NFS4_OPEN_CLAIM_PREVIOUS) {
1355 task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_OPEN_NOATTR]; 1355 task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_OPEN_NOATTR];
1356 nfs_copy_fh(&data->o_res.fh, data->o_arg.fh); 1356 nfs_copy_fh(&data->o_res.fh, data->o_arg.fh);
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index c3c6b8aeb209..13e17e32e3e4 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -373,7 +373,6 @@ nfs4_alloc_state_owner(void)
373 return NULL; 373 return NULL;
374 spin_lock_init(&sp->so_lock); 374 spin_lock_init(&sp->so_lock);
375 INIT_LIST_HEAD(&sp->so_states); 375 INIT_LIST_HEAD(&sp->so_states);
376 INIT_LIST_HEAD(&sp->so_delegations);
377 rpc_init_wait_queue(&sp->so_sequence.wait, "Seqid_waitqueue"); 376 rpc_init_wait_queue(&sp->so_sequence.wait, "Seqid_waitqueue");
378 sp->so_seqid.sequence = &sp->so_sequence; 377 sp->so_seqid.sequence = &sp->so_sequence;
379 spin_lock_init(&sp->so_sequence.lock); 378 spin_lock_init(&sp->so_sequence.lock);
@@ -386,7 +385,7 @@ static void
386nfs4_drop_state_owner(struct nfs4_state_owner *sp) 385nfs4_drop_state_owner(struct nfs4_state_owner *sp)
387{ 386{
388 if (!RB_EMPTY_NODE(&sp->so_client_node)) { 387 if (!RB_EMPTY_NODE(&sp->so_client_node)) {
389 struct nfs_client *clp = sp->so_client; 388 struct nfs_client *clp = sp->so_server->nfs_client;
390 389
391 spin_lock(&clp->cl_lock); 390 spin_lock(&clp->cl_lock);
392 rb_erase(&sp->so_client_node, &clp->cl_state_owners); 391 rb_erase(&sp->so_client_node, &clp->cl_state_owners);
@@ -408,7 +407,6 @@ struct nfs4_state_owner *nfs4_get_state_owner(struct nfs_server *server, struct
408 new = nfs4_alloc_state_owner(); 407 new = nfs4_alloc_state_owner();
409 if (new == NULL) 408 if (new == NULL)
410 return NULL; 409 return NULL;
411 new->so_client = clp;
412 new->so_server = server; 410 new->so_server = server;
413 new->so_cred = cred; 411 new->so_cred = cred;
414 spin_lock(&clp->cl_lock); 412 spin_lock(&clp->cl_lock);
@@ -425,7 +423,7 @@ struct nfs4_state_owner *nfs4_get_state_owner(struct nfs_server *server, struct
425 423
426void nfs4_put_state_owner(struct nfs4_state_owner *sp) 424void nfs4_put_state_owner(struct nfs4_state_owner *sp)
427{ 425{
428 struct nfs_client *clp = sp->so_client; 426 struct nfs_client *clp = sp->so_server->nfs_client;
429 struct rpc_cred *cred = sp->so_cred; 427 struct rpc_cred *cred = sp->so_cred;
430 428
431 if (!atomic_dec_and_lock(&sp->so_count, &clp->cl_lock)) 429 if (!atomic_dec_and_lock(&sp->so_count, &clp->cl_lock))
@@ -624,7 +622,7 @@ __nfs4_find_lock_state(struct nfs4_state *state, fl_owner_t fl_owner)
624static struct nfs4_lock_state *nfs4_alloc_lock_state(struct nfs4_state *state, fl_owner_t fl_owner) 622static struct nfs4_lock_state *nfs4_alloc_lock_state(struct nfs4_state *state, fl_owner_t fl_owner)
625{ 623{
626 struct nfs4_lock_state *lsp; 624 struct nfs4_lock_state *lsp;
627 struct nfs_client *clp = state->owner->so_client; 625 struct nfs_client *clp = state->owner->so_server->nfs_client;
628 626
629 lsp = kzalloc(sizeof(*lsp), GFP_NOFS); 627 lsp = kzalloc(sizeof(*lsp), GFP_NOFS);
630 if (lsp == NULL) 628 if (lsp == NULL)
@@ -645,7 +643,7 @@ static struct nfs4_lock_state *nfs4_alloc_lock_state(struct nfs4_state *state, f
645 643
646static void nfs4_free_lock_state(struct nfs4_lock_state *lsp) 644static void nfs4_free_lock_state(struct nfs4_lock_state *lsp)
647{ 645{
648 struct nfs_client *clp = lsp->ls_state->owner->so_client; 646 struct nfs_client *clp = lsp->ls_state->owner->so_server->nfs_client;
649 647
650 spin_lock(&clp->cl_lock); 648 spin_lock(&clp->cl_lock);
651 nfs_free_unique_id(&clp->cl_lockowner_id, &lsp->ls_id); 649 nfs_free_unique_id(&clp->cl_lockowner_id, &lsp->ls_id);
@@ -1043,11 +1041,11 @@ restart:
1043 case -NFS4ERR_BAD_STATEID: 1041 case -NFS4ERR_BAD_STATEID:
1044 case -NFS4ERR_RECLAIM_BAD: 1042 case -NFS4ERR_RECLAIM_BAD:
1045 case -NFS4ERR_RECLAIM_CONFLICT: 1043 case -NFS4ERR_RECLAIM_CONFLICT:
1046 nfs4_state_mark_reclaim_nograce(sp->so_client, state); 1044 nfs4_state_mark_reclaim_nograce(sp->so_server->nfs_client, state);
1047 break; 1045 break;
1048 case -NFS4ERR_EXPIRED: 1046 case -NFS4ERR_EXPIRED:
1049 case -NFS4ERR_NO_GRACE: 1047 case -NFS4ERR_NO_GRACE:
1050 nfs4_state_mark_reclaim_nograce(sp->so_client, state); 1048 nfs4_state_mark_reclaim_nograce(sp->so_server->nfs_client, state);
1051 case -NFS4ERR_STALE_CLIENTID: 1049 case -NFS4ERR_STALE_CLIENTID:
1052 case -NFS4ERR_BADSESSION: 1050 case -NFS4ERR_BADSESSION:
1053 case -NFS4ERR_BADSLOT: 1051 case -NFS4ERR_BADSLOT: