summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2021-05-14 22:56:43 +0300
committerJ. Bruce Fields <bfields@redhat.com>2021-05-18 20:44:04 +0300
commit806d65b617d89be887fe68bfa051f78143669cd7 (patch)
tree954bf9a08905c5214d0e59f9ee6b9820262a2cd5
parent167145cc64ce4b4b177e636829909a6b14004f9e (diff)
downloadlinux-806d65b617d89be887fe68bfa051f78143669cd7.tar.xz
NFSD: Add cb_lost tracepoint
Provide more clarity about when the callback channel is in trouble. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
-rw-r--r--fs/nfsd/nfs4state.c2
-rw-r--r--fs/nfsd/trace.h1
2 files changed, 3 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index aa645aeee7b6..377ec4a6a771 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -1745,6 +1745,8 @@ static void nfsd4_conn_lost(struct svc_xpt_user *u)
struct nfsd4_conn *c = container_of(u, struct nfsd4_conn, cn_xpt_user);
struct nfs4_client *clp = c->cn_session->se_client;
+ trace_nfsd_cb_lost(clp);
+
spin_lock(&clp->cl_lock);
if (!list_empty(&c->cn_persession)) {
list_del(&c->cn_persession);
diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h
index 1c43e6647d1e..336dc4c45416 100644
--- a/fs/nfsd/trace.h
+++ b/fs/nfsd/trace.h
@@ -912,6 +912,7 @@ DEFINE_EVENT(nfsd_cb_class, nfsd_cb_##name, \
DEFINE_NFSD_CB_EVENT(setup);
DEFINE_NFSD_CB_EVENT(state);
+DEFINE_NFSD_CB_EVENT(lost);
DEFINE_NFSD_CB_EVENT(shutdown);
TRACE_DEFINE_ENUM(RPC_AUTH_NULL);