NFSv41: nfs4_reset_session must always set NFS4CLNT_SESSION_DRAINING
Otherwise we have no guarantees that other processes won't start another RPC call while we're resetting the session. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
2597641dea
commit
0556d1a695
|
@ -1211,8 +1211,8 @@ static int nfs4_reset_session(struct nfs_client *clp)
|
|||
|
||||
INIT_COMPLETION(ses->complete);
|
||||
spin_lock(&tbl->slot_tbl_lock);
|
||||
set_bit(NFS4CLNT_SESSION_DRAINING, &clp->cl_state);
|
||||
if (tbl->highest_used_slotid != -1) {
|
||||
set_bit(NFS4CLNT_SESSION_DRAINING, &clp->cl_state);
|
||||
spin_unlock(&tbl->slot_tbl_lock);
|
||||
status = wait_for_completion_interruptible(&ses->complete);
|
||||
if (status) /* -ERESTARTSYS */
|
||||
|
|
Loading…
Reference in New Issue