Commit 3bfb0fc5 authored by Alexandros Batsakis's avatar Alexandros Batsakis Committed by Trond Myklebust

nfs: minor cleanup of session draining

Signed-off-by: default avatarAlexandros Batsakis <batsakis@netapp.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 3ea6b3d0
...@@ -341,6 +341,23 @@ nfs4_free_slot(struct nfs4_slot_table *tbl, u8 free_slotid) ...@@ -341,6 +341,23 @@ nfs4_free_slot(struct nfs4_slot_table *tbl, u8 free_slotid)
free_slotid, tbl->highest_used_slotid); free_slotid, tbl->highest_used_slotid);
} }
/*
* Signal state manager thread if session is drained
*/
static void nfs41_check_drain_session_complete(struct nfs4_session *ses)
{
if (!test_bit(NFS4CLNT_SESSION_DRAINING, &ses->clp->cl_state)) {
rpc_wake_up_next(&ses->fc_slot_table.slot_tbl_waitq);
return;
}
if (ses->fc_slot_table.highest_used_slotid != -1)
return;
dprintk("%s COMPLETE: Session Drained\n", __func__);
complete(&ses->complete);
}
static void nfs41_sequence_free_slot(const struct nfs_client *clp, static void nfs41_sequence_free_slot(const struct nfs_client *clp,
struct nfs4_sequence_res *res) struct nfs4_sequence_res *res)
{ {
...@@ -356,15 +373,7 @@ static void nfs41_sequence_free_slot(const struct nfs_client *clp, ...@@ -356,15 +373,7 @@ static void nfs41_sequence_free_slot(const struct nfs_client *clp,
spin_lock(&tbl->slot_tbl_lock); spin_lock(&tbl->slot_tbl_lock);
nfs4_free_slot(tbl, res->sr_slotid); nfs4_free_slot(tbl, res->sr_slotid);
nfs41_check_drain_session_complete(clp->cl_session);
/* Signal state manager thread if session is drained */
if (test_bit(NFS4CLNT_SESSION_DRAINING, &clp->cl_state)) {
if (tbl->highest_used_slotid == -1) {
dprintk("%s COMPLETE: Session Drained\n", __func__);
complete(&clp->cl_session->complete);
}
} else
rpc_wake_up_next(&tbl->slot_tbl_waitq);
spin_unlock(&tbl->slot_tbl_lock); spin_unlock(&tbl->slot_tbl_lock);
res->sr_slotid = NFS4_MAX_SLOT_TABLE; res->sr_slotid = NFS4_MAX_SLOT_TABLE;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment