Skip to content

Commit

Permalink
nfsd4: Expose the callback address and state of each NFS4 client
Browse files Browse the repository at this point in the history
In addition to the client's address, display the callback channel
state and address in the 'info' file.

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
  • Loading branch information
DaveWysochanskiRH authored and J. Bruce Fields committed Jul 7, 2021
1 parent d502952 commit 3518c86
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions fs/nfsd/nfs4state.c
Original file line number Diff line number Diff line change
Expand Up @@ -2358,6 +2358,21 @@ static void seq_quote_mem(struct seq_file *m, char *data, int len)
seq_printf(m, "\"");
}

static const char *cb_state2str(int state)
{
switch (state) {
case NFSD4_CB_UP:
return "UP";
case NFSD4_CB_UNKNOWN:
return "UNKNOWN";
case NFSD4_CB_DOWN:
return "DOWN";
case NFSD4_CB_FAULT:
return "FAULT";
}
return "UNDEFINED";
}

static int client_info_show(struct seq_file *m, void *v)
{
struct inode *inode = m->private;
Expand Down Expand Up @@ -2386,6 +2401,8 @@ static int client_info_show(struct seq_file *m, void *v)
seq_printf(m, "\nImplementation time: [%lld, %ld]\n",
clp->cl_nii_time.tv_sec, clp->cl_nii_time.tv_nsec);
}
seq_printf(m, "callback state: %s\n", cb_state2str(clp->cl_cb_state));
seq_printf(m, "callback address: %pISpc\n", &clp->cl_cb_conn.cb_addr);
drop_client(clp);

return 0;
Expand Down

0 comments on commit 3518c86

Please sign in to comment.