NFSD: Adjust cb_shutdown tracepoint
authorChuck Lever <chuck.lever@oracle.com>
Fri, 14 May 2021 19:56:49 +0000 (15:56 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Tue, 18 May 2021 17:44:04 +0000 (13:44 -0400)
Show when the upper layer requested a shutdown. RPC tracepoints can
already show when rpc_shutdown_client() is called.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs4callback.c

index b6cc51a9f37ca2016808908f3bcf01008dd122ab..ab1836381e22be78a0b4a57d2a5936c11b724e6b 100644 (file)
@@ -1233,6 +1233,9 @@ void nfsd4_destroy_callback_queue(void)
 /* must be called under the state lock */
 void nfsd4_shutdown_callback(struct nfs4_client *clp)
 {
+       if (clp->cl_cb_state != NFSD4_CB_UNKNOWN)
+               trace_nfsd_cb_shutdown(clp);
+
        set_bit(NFSD4_CLIENT_CB_KILL, &clp->cl_flags);
        /*
         * Note this won't actually result in a null callback;
@@ -1278,7 +1281,6 @@ static void nfsd4_process_cb_update(struct nfsd4_callback *cb)
         * kill the old client:
         */
        if (clp->cl_cb_client) {
-               trace_nfsd_cb_shutdown(clp);
                rpc_shutdown_client(clp->cl_cb_client);
                clp->cl_cb_client = NULL;
                put_cred(clp->cl_cb_cred);