OSDN Git Service

NFSD: Show state of courtesy client in client info
authorDai Ngo <dai.ngo@oracle.com>
Mon, 2 May 2022 21:19:27 +0000 (14:19 -0700)
committerChuck Lever <chuck.lever@oracle.com>
Thu, 19 May 2022 16:25:40 +0000 (12:25 -0400)
Update client_info_show to show state of courtesy client
and seconds since last renew.

Reviewed-by: J. Bruce Fields <bfields@fieldses.org>
Signed-off-by: Dai Ngo <dai.ngo@oracle.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs4state.c

index 2bcdc6e..231e5c1 100644 (file)
@@ -2481,10 +2481,17 @@ static int client_info_show(struct seq_file *m, void *v)
        memcpy(&clid, &clp->cl_clientid, sizeof(clid));
        seq_printf(m, "clientid: 0x%llx\n", clid);
        seq_printf(m, "address: \"%pISpc\"\n", (struct sockaddr *)&clp->cl_addr);
-       if (test_bit(NFSD4_CLIENT_CONFIRMED, &clp->cl_flags))
+
+       if (clp->cl_state == NFSD4_COURTESY)
+               seq_puts(m, "status: courtesy\n");
+       else if (clp->cl_state == NFSD4_EXPIRABLE)
+               seq_puts(m, "status: expirable\n");
+       else if (test_bit(NFSD4_CLIENT_CONFIRMED, &clp->cl_flags))
                seq_puts(m, "status: confirmed\n");
        else
                seq_puts(m, "status: unconfirmed\n");
+       seq_printf(m, "seconds from last renew: %lld\n",
+               ktime_get_boottime_seconds() - clp->cl_time);
        seq_printf(m, "name: ");
        seq_quote_mem(m, clp->cl_name.data, clp->cl_name.len);
        seq_printf(m, "\nminor version: %d\n", clp->cl_minorversion);