diff options
author | Christoph Hellwig <hch@lst.de> | 2014-08-16 19:02:22 -0500 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2015-02-02 18:09:44 +0100 |
commit | 31ef83dc053835fc14741426e20c60dbbba8c13d (patch) | |
tree | 8c9a1cac8a5e29fa07b476d705d09ca0f79e40ee /fs/nfsd/nfs4proc.c | |
parent | 18d1aef89ec14dd2c4afaa80b7b1b3497aa188c7 (diff) | |
download | op-kernel-dev-31ef83dc053835fc14741426e20c60dbbba8c13d.zip op-kernel-dev-31ef83dc053835fc14741426e20c60dbbba8c13d.tar.gz |
nfsd: add trace events
For now just a few simple events to trace the layout stateid lifetime, but
these already were enough to find several bugs in the Linux client layout
stateid handling.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'fs/nfsd/nfs4proc.c')
-rw-r--r-- | fs/nfsd/nfs4proc.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c index fa14359..d30bea8d 100644 --- a/fs/nfsd/nfs4proc.c +++ b/fs/nfsd/nfs4proc.c @@ -44,6 +44,7 @@ #include "netns.h" #include "acl.h" #include "pnfs.h" +#include "trace.h" #ifdef CONFIG_NFSD_V4_SECURITY_LABEL #include <linux/security.h> @@ -1298,8 +1299,10 @@ nfsd4_layoutget(struct svc_rqst *rqstp, nfserr = nfsd4_preprocess_layout_stateid(rqstp, cstate, &lgp->lg_sid, true, lgp->lg_layout_type, &ls); - if (nfserr) + if (nfserr) { + trace_layout_get_lookup_fail(&lgp->lg_sid); goto out; + } nfserr = nfserr_recallconflict; if (atomic_read(&ls->ls_stid.sc_file->fi_lo_recalls)) @@ -1359,6 +1362,7 @@ nfsd4_layoutcommit(struct svc_rqst *rqstp, false, lcp->lc_layout_type, &ls); if (nfserr) { + trace_layout_commit_lookup_fail(&lcp->lc_sid); /* fixup error code as per RFC5661 */ if (nfserr == nfserr_bad_stateid) nfserr = nfserr_badlayout; |