nfsd: add session slot count to /proc/fs/nfsd/clients/*/info
authorNeilBrown <neilb@suse.de>
Wed, 11 Dec 2024 21:47:06 +0000 (08:47 +1100)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 6 Jan 2025 14:37:38 +0000 (09:37 -0500)
Each client now reports the number of slots allocated in each session.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs4state.c

index 84d364975ae10b67f859f4e503ee8093202ef89d..bdfe791b02f159ea15f5bc622fe84a2cdd498680 100644 (file)
@@ -2643,6 +2643,7 @@ static const char *cb_state2str(int state)
 static int client_info_show(struct seq_file *m, void *v)
 {
        struct inode *inode = file_inode(m->file);
+       struct nfsd4_session *ses;
        struct nfs4_client *clp;
        u64 clid;
 
@@ -2679,6 +2680,13 @@ static int client_info_show(struct seq_file *m, void *v)
        seq_printf(m, "callback address: \"%pISpc\"\n", &clp->cl_cb_conn.cb_addr);
        seq_printf(m, "admin-revoked states: %d\n",
                   atomic_read(&clp->cl_admin_revoked));
+       spin_lock(&clp->cl_lock);
+       seq_printf(m, "session slots:");
+       list_for_each_entry(ses, &clp->cl_sessions, se_perclnt)
+               seq_printf(m, " %u", ses->se_fchannel.maxreqs);
+       spin_unlock(&clp->cl_lock);
+       seq_puts(m, "\n");
+
        drop_client(clp);
 
        return 0;