mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
NFSD: Move nfsd_file_trace_alloc() tracepoint
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>
This commit is contained in:
parent
be0230069f
commit
b40a283947
@ -303,7 +303,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;
|
||||
}
|
||||
@ -1126,6 +1125,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) {
|
||||
|
@ -774,12 +774,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…
Reference in New Issue
Block a user