NFSv4: clp->cl_cons_state < 0 signifies an invalid nfs_client
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Tue, 25 Mar 2025 00:03:03 +0000 (20:03 -0400)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Wed, 26 Mar 2025 16:19:51 +0000 (12:19 -0400)
If someone calls nfs_mark_client_ready(clp, status) with a negative
value for status, then that should signal that the nfs_client is no
longer valid.

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/nfs4state.c

index f1f7eaa97973e353f406a6110a94f4166078f24e..272d2ebdae0f65b2659ed310c64f645e1ddf3976 100644 (file)
@@ -1403,7 +1403,7 @@ int nfs4_schedule_stateid_recovery(const struct nfs_server *server, struct nfs4_
        dprintk("%s: scheduling stateid recovery for server %s\n", __func__,
                        clp->cl_hostname);
        nfs4_schedule_state_manager(clp);
-       return 0;
+       return clp->cl_cons_state < 0 ? clp->cl_cons_state : 0;
 }
 EXPORT_SYMBOL_GPL(nfs4_schedule_stateid_recovery);