[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <163456900574.2614702.12478396115896341195.stgit@warthog.procyon.org.uk>
Date: Mon, 18 Oct 2021 15:56:45 +0100
From: David Howells <dhowells@...hat.com>
To: linux-cachefs@...hat.com
Cc: dhowells@...hat.com, Trond Myklebust <trondmy@...merspace.com>,
Anna Schumaker <anna.schumaker@...app.com>,
Steve French <sfrench@...ba.org>,
Dominique Martinet <asmadeus@...ewreck.org>,
Jeff Layton <jlayton@...hat.com>,
Matthew Wilcox <willy@...radead.org>,
Alexander Viro <viro@...iv.linux.org.uk>,
Omar Sandoval <osandov@...ndov.com>,
Linus Torvalds <torvalds@...ux-foundation.org>,
linux-afs@...ts.infradead.org, linux-nfs@...r.kernel.org,
linux-cifs@...r.kernel.org, ceph-devel@...r.kernel.org,
v9fs-developer@...ts.sourceforge.net,
linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH 23/67] cachefiles: trace: Improve the lookup tracepoint
Improve the cachefiles_lookup tracepoint:
- Don't display the dentry address, since it's going to get hashed.
- Do display any error code.
- Work out the inode in the tracepoint rather than in the caller so that
the logic is conditional on the tracepoint being enabled.
Signed-off-by: David Howells <dhowells@...hat.com>
---
fs/cachefiles/namei.c | 4 +---
include/trace/events/cachefiles.h | 18 +++++++++---------
2 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
index 10b6d571eda8..b5a0aec529af 100644
--- a/fs/cachefiles/namei.c
+++ b/fs/cachefiles/namei.c
@@ -340,14 +340,12 @@ static int cachefiles_walk_to_file(struct cachefiles_cache *cache,
inode_lock_nested(dinode, I_MUTEX_PARENT);
dentry = lookup_one_len(object->d_name, fan, object->d_name_len);
+ trace_cachefiles_lookup(object, dentry);
if (IS_ERR(dentry)) {
- trace_cachefiles_lookup(object, dentry, NULL);
ret = PTR_ERR(dentry);
goto error;
}
- trace_cachefiles_lookup(object, dentry, d_backing_inode(dentry));
-
if (d_is_negative(dentry)) {
/* This element of the path doesn't exist, so we can release
* any readers in the certain knowledge that there's nothing
diff --git a/include/trace/events/cachefiles.h b/include/trace/events/cachefiles.h
index bd0b5bbd3889..87681dd957ec 100644
--- a/include/trace/events/cachefiles.h
+++ b/include/trace/events/cachefiles.h
@@ -98,25 +98,25 @@ TRACE_EVENT(cachefiles_ref,
TRACE_EVENT(cachefiles_lookup,
TP_PROTO(struct cachefiles_object *obj,
- struct dentry *de,
- struct inode *inode),
+ struct dentry *de),
- TP_ARGS(obj, de, inode),
+ TP_ARGS(obj, de),
TP_STRUCT__entry(
__field(unsigned int, obj )
- __field(struct dentry *, de )
- __field(struct inode *, inode )
+ __field(short, error )
+ __field(unsigned long, ino )
),
TP_fast_assign(
__entry->obj = obj->fscache.debug_id;
- __entry->de = de;
- __entry->inode = inode;
+ __entry->ino = (!IS_ERR(de) && d_backing_inode(de) ?
+ d_backing_inode(de)->i_ino : 0);
+ __entry->error = IS_ERR(de) ? PTR_ERR(de) : 0;
),
- TP_printk("o=%08x d=%p i=%p",
- __entry->obj, __entry->de, __entry->inode)
+ TP_printk("o=%08x i=%lx e=%d",
+ __entry->obj, __entry->ino, __entry->error)
);
TRACE_EVENT(cachefiles_create,
Powered by blists - more mailing lists