NFSD: Move nfsd_file_trace_alloc() tracepoint
[ Upstream commit b40a2839470cd62ed68c4a32d72a18ee8975b1ac ] Avoid recording the allocation of an nfsd_file item that is immediately released because a matching item was already inserted in the hash. Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
96ab7b7d71
commit
450cd975fe
2 changed files with 25 additions and 2 deletions
|
@ -302,7 +302,6 @@ nfsd_file_alloc(struct nfsd_file_lookup_key *key, unsigned int may)
|
|||
refcount_set(&nf->nf_ref, 2);
|
||||
nf->nf_may = key->need;
|
||||
nf->nf_mark = NULL;
|
||||
trace_nfsd_file_alloc(nf);
|
||||
}
|
||||
return nf;
|
||||
}
|
||||
|
@ -1125,6 +1124,7 @@ out_status:
|
|||
return status;
|
||||
|
||||
open_file:
|
||||
trace_nfsd_file_alloc(nf);
|
||||
nf->nf_mark = nfsd_file_mark_find_or_create(nf);
|
||||
if (nf->nf_mark) {
|
||||
if (open) {
|
||||
|
|
|
@ -739,12 +739,35 @@ DEFINE_EVENT(nfsd_file_class, name, \
|
|||
TP_PROTO(struct nfsd_file *nf), \
|
||||
TP_ARGS(nf))
|
||||
|
||||
DEFINE_NFSD_FILE_EVENT(nfsd_file_alloc);
|
||||
DEFINE_NFSD_FILE_EVENT(nfsd_file_put_final);
|
||||
DEFINE_NFSD_FILE_EVENT(nfsd_file_unhash);
|
||||
DEFINE_NFSD_FILE_EVENT(nfsd_file_put);
|
||||
DEFINE_NFSD_FILE_EVENT(nfsd_file_unhash_and_dispose);
|
||||
|
||||
TRACE_EVENT(nfsd_file_alloc,
|
||||
TP_PROTO(
|
||||
const struct nfsd_file *nf
|
||||
),
|
||||
TP_ARGS(nf),
|
||||
TP_STRUCT__entry(
|
||||
__field(const void *, nf_inode)
|
||||
__field(unsigned long, nf_flags)
|
||||
__field(unsigned long, nf_may)
|
||||
__field(unsigned int, nf_ref)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->nf_inode = nf->nf_inode;
|
||||
__entry->nf_flags = nf->nf_flags;
|
||||
__entry->nf_ref = refcount_read(&nf->nf_ref);
|
||||
__entry->nf_may = nf->nf_may;
|
||||
),
|
||||
TP_printk("inode=%p ref=%u flags=%s may=%s",
|
||||
__entry->nf_inode, __entry->nf_ref,
|
||||
show_nf_flags(__entry->nf_flags),
|
||||
show_nfsd_may_flags(__entry->nf_may)
|
||||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(nfsd_file_acquire,
|
||||
TP_PROTO(
|
||||
const struct svc_rqst *rqstp,
|
||||
|
|
Loading…
Add table
Reference in a new issue