|
@@ -241,7 +241,7 @@ static void nfs4_end_drain_session(struct nfs_client *clp)
|
|
|
if (ses == NULL)
|
|
|
return;
|
|
|
tbl = &ses->fc_slot_table;
|
|
|
- if (test_and_clear_bit(NFS4_SESSION_DRAINING, &ses->session_state)) {
|
|
|
+ if (test_and_clear_bit(NFS4_SLOT_TBL_DRAINING, &tbl->slot_tbl_state)) {
|
|
|
spin_lock(&tbl->slot_tbl_lock);
|
|
|
nfs41_wake_slot_table(tbl);
|
|
|
spin_unlock(&tbl->slot_tbl_lock);
|
|
@@ -251,15 +251,15 @@ static void nfs4_end_drain_session(struct nfs_client *clp)
|
|
|
/*
|
|
|
* Signal state manager thread if session fore channel is drained
|
|
|
*/
|
|
|
-void nfs4_session_drain_complete(struct nfs4_session *session,
|
|
|
- struct nfs4_slot_table *tbl)
|
|
|
+void nfs4_slot_tbl_drain_complete(struct nfs4_slot_table *tbl)
|
|
|
{
|
|
|
- if (nfs4_session_draining(session))
|
|
|
+ if (nfs4_slot_tbl_draining(tbl))
|
|
|
complete(&tbl->complete);
|
|
|
}
|
|
|
|
|
|
-static int nfs4_wait_on_slot_tbl(struct nfs4_slot_table *tbl)
|
|
|
+static int nfs4_drain_slot_tbl(struct nfs4_slot_table *tbl)
|
|
|
{
|
|
|
+ set_bit(NFS4_SLOT_TBL_DRAINING, &tbl->slot_tbl_state);
|
|
|
spin_lock(&tbl->slot_tbl_lock);
|
|
|
if (tbl->highest_used_slotid != NFS4_NO_SLOT) {
|
|
|
INIT_COMPLETION(tbl->complete);
|
|
@@ -275,13 +275,12 @@ static int nfs4_begin_drain_session(struct nfs_client *clp)
|
|
|
struct nfs4_session *ses = clp->cl_session;
|
|
|
int ret = 0;
|
|
|
|
|
|
- set_bit(NFS4_SESSION_DRAINING, &ses->session_state);
|
|
|
/* back channel */
|
|
|
- ret = nfs4_wait_on_slot_tbl(&ses->bc_slot_table);
|
|
|
+ ret = nfs4_drain_slot_tbl(&ses->bc_slot_table);
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
/* fore channel */
|
|
|
- return nfs4_wait_on_slot_tbl(&ses->fc_slot_table);
|
|
|
+ return nfs4_drain_slot_tbl(&ses->fc_slot_table);
|
|
|
}
|
|
|
|
|
|
static void nfs41_finish_session_reset(struct nfs_client *clp)
|