NFSv4: Further cleanups to shutdown loops
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Tue, 25 Mar 2025 22:18:40 +0000 (18:18 -0400)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Wed, 26 Mar 2025 16:19:08 +0000 (12:19 -0400)
Replace the tests for the RPC client being shut down with tests for
whether the nfs_client is in an error state.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/nfs4proc.c
fs/nfs/nfs4state.c

index 889511650ceb6095e3387c822889cb621e7c572c..50be54e0f578e69ccdcfc03152e1133e3912474d 100644 (file)
@@ -9580,7 +9580,7 @@ static void nfs41_sequence_call_done(struct rpc_task *task, void *data)
                return;
 
        trace_nfs4_sequence(clp, task->tk_status);
-       if (task->tk_status < 0 && !task->tk_client->cl_shutdown) {
+       if (task->tk_status < 0 && clp->cl_cons_state >= 0) {
                dprintk("%s ERROR %d\n", __func__, task->tk_status);
                if (refcount_read(&clp->cl_count) == 1)
                        return;
index 542cdf71229febe2534744cb456f29af93cf208f..f1f7eaa97973e353f406a6110a94f4166078f24e 100644 (file)
@@ -1198,7 +1198,7 @@ void nfs4_schedule_state_manager(struct nfs_client *clp)
        struct rpc_clnt *clnt = clp->cl_rpcclient;
        bool swapon = false;
 
-       if (clnt->cl_shutdown)
+       if (clp->cl_cons_state < 0)
                return;
 
        set_bit(NFS4CLNT_RUN_MANAGER, &clp->cl_state);