]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Apr 2024 14:19:05 +0000 (16:19 +0200)
[ Upstream commit e9488d5ae13c0a72223c507e2508dc2ac66cad4f ]

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 447faa4348227b9d730ddfc0ea3a5c4cea251490..5bbf769b688bc1e6dd8a9651dd69cacf7db6a8c5 100644 (file)
@@ -2494,10 +2494,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);