Re: [PATCH] NFSv4: add tracepoint to referral events

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Chen,

On Mon, Apr 8, 2024 at 5:52 AM Chen Hanxiao <chenhx.fnst@xxxxxxxxxxx> wrote:
>
> Trace new locations when hitting a referral.
>
> Signed-off-by: Chen Hanxiao <chenhx.fnst@xxxxxxxxxxx>
> ---
>  fs/nfs/nfs4namespace.c |  3 +++
>  fs/nfs/nfs4trace.h     | 25 +++++++++++++++++++++++++
>  2 files changed, 28 insertions(+)
>
> diff --git a/fs/nfs/nfs4namespace.c b/fs/nfs/nfs4namespace.c
> index 9a98595bb160..fca9fb801bc2 100644
> --- a/fs/nfs/nfs4namespace.c
> +++ b/fs/nfs/nfs4namespace.c
> @@ -24,6 +24,7 @@
>  #include "nfs4_fs.h"
>  #include "nfs.h"
>  #include "dns_resolve.h"
> +#include "nfs4trace.h"
>
>  #define NFSDBG_FACILITY                NFSDBG_VFS
>
> @@ -351,6 +352,8 @@ static int try_location(struct fs_context *fc,
>                 p += ctx->nfs_server.export_path_len;
>                 *p = 0;
>
> +               trace_nfs4_referral_location(ctx->nfs_server.hostname,
> +                       ctx->nfs_server.export_path);
>                 ret = nfs4_get_referral_tree(fc);
>                 if (ret == 0)
>                         return 0;
> diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h
> index 10985a4b8259..165c4dc7b5c7 100644
> --- a/fs/nfs/nfs4trace.h
> +++ b/fs/nfs/nfs4trace.h
> @@ -2604,6 +2604,31 @@ DEFINE_NFS4_XATTR_EVENT(nfs4_setxattr);
>  DEFINE_NFS4_XATTR_EVENT(nfs4_removexattr);
>
>  DEFINE_NFS4_INODE_EVENT(nfs4_listxattr);
> +
> +TRACE_EVENT(nfs4_referral_location,
> +               TP_PROTO(
> +                       const char *hostname,
> +                       const char *path
> +               ),
> +
> +               TP_ARGS(hostname, path),
> +
> +               TP_STRUCT__entry(
> +                       __string(referral_hostname, hostname)
> +                       __string(referral_path, path)
> +               ),
> +
> +               TP_fast_assign(
> +                       __assign_str(referral_hostname, hostname)e

                      ^^^^^^^
I wanted to double check if you've compiled and tested this? I ask
because the 'e' at the end of the line here should be a semicolon,
which my compiler complains about.

Thanks,
Anna

> +                       __assign_str(referral_path, path);
> +               ),
> +
> +               TP_printk(
> +                       "referral_host=%s referral_path=%s",
> +                       __get_str(referral_hostname),
> +                       __get_str(referral_path)
> +               )
> +);
>  #endif /* CONFIG_NFS_V4_2 */
>
>  #endif /* CONFIG_NFS_V4_1 */
> --
> 2.39.1
>





[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux