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>
This commit is contained in:
parent
18d1aef89e
commit
31ef83dc05
5 changed files with 85 additions and 3 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue