mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-07 23:20:32 -04:00
nfs: new tracepoint in nfs_delegation_need_return
Add a tracepoint in the function that decides whether to return a delegation to the server. Reviewed-by: Benjamin Coddington <bcodding@redhat.com> Signed-off-by: Jeff Layton <jlayton@kernel.org> Link: https://lore.kernel.org/r/20250618-nfs-tracepoints-v2-3-540c9fb48da2@kernel.org Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
committed by
Trond Myklebust
parent
0139a30ada
commit
5dd03d14b3
@@ -594,6 +594,8 @@ static bool nfs_delegation_need_return(struct nfs_delegation *delegation)
|
||||
{
|
||||
bool ret = false;
|
||||
|
||||
trace_nfs_delegation_need_return(delegation);
|
||||
|
||||
if (test_and_clear_bit(NFS_DELEGATION_RETURN, &delegation->flags))
|
||||
ret = true;
|
||||
if (test_bit(NFS_DELEGATION_RETURNING, &delegation->flags) ||
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
#include <trace/misc/fs.h>
|
||||
#include <trace/misc/nfs.h>
|
||||
|
||||
#include "delegation.h"
|
||||
|
||||
#define show_nfs_fattr_flags(valid) \
|
||||
__print_flags((unsigned long)valid, "|", \
|
||||
{ NFS_ATTR_FATTR_TYPE, "TYPE" }, \
|
||||
@@ -985,6 +987,51 @@ DEFINE_NFS4_SET_DELEGATION_EVENT(nfs4_set_delegation);
|
||||
DEFINE_NFS4_SET_DELEGATION_EVENT(nfs4_reclaim_delegation);
|
||||
DEFINE_NFS4_SET_DELEGATION_EVENT(nfs4_detach_delegation);
|
||||
|
||||
#define show_delegation_flags(flags) \
|
||||
__print_flags(flags, "|", \
|
||||
{ BIT(NFS_DELEGATION_NEED_RECLAIM), "NEED_RECLAIM" }, \
|
||||
{ BIT(NFS_DELEGATION_RETURN), "RETURN" }, \
|
||||
{ BIT(NFS_DELEGATION_RETURN_IF_CLOSED), "RETURN_IF_CLOSED" }, \
|
||||
{ BIT(NFS_DELEGATION_REFERENCED), "REFERENCED" }, \
|
||||
{ BIT(NFS_DELEGATION_RETURNING), "RETURNING" }, \
|
||||
{ BIT(NFS_DELEGATION_REVOKED), "REVOKED" }, \
|
||||
{ BIT(NFS_DELEGATION_TEST_EXPIRED), "TEST_EXPIRED" }, \
|
||||
{ BIT(NFS_DELEGATION_INODE_FREEING), "INODE_FREEING" }, \
|
||||
{ BIT(NFS_DELEGATION_RETURN_DELAYED), "RETURN_DELAYED" })
|
||||
|
||||
DECLARE_EVENT_CLASS(nfs4_delegation_event,
|
||||
TP_PROTO(
|
||||
const struct nfs_delegation *delegation
|
||||
),
|
||||
|
||||
TP_ARGS(delegation),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(u32, fhandle)
|
||||
__field(unsigned int, fmode)
|
||||
__field(unsigned long, flags)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->fhandle = nfs_fhandle_hash(NFS_FH(delegation->inode));
|
||||
__entry->fmode = delegation->type;
|
||||
__entry->flags = delegation->flags;
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
"fhandle=0x%08x fmode=%s flags=%s",
|
||||
__entry->fhandle, show_fs_fmode_flags(__entry->fmode),
|
||||
show_delegation_flags(__entry->flags)
|
||||
)
|
||||
);
|
||||
#define DEFINE_NFS4_DELEGATION_EVENT(name) \
|
||||
DEFINE_EVENT(nfs4_delegation_event, name, \
|
||||
TP_PROTO( \
|
||||
const struct nfs_delegation *delegation \
|
||||
), \
|
||||
TP_ARGS(delegation))
|
||||
DEFINE_NFS4_DELEGATION_EVENT(nfs_delegation_need_return);
|
||||
|
||||
TRACE_EVENT(nfs4_delegreturn_exit,
|
||||
TP_PROTO(
|
||||
const struct nfs4_delegreturnargs *args,
|
||||
|
||||
Reference in New Issue
Block a user