On Fri,  7 Aug 2026 09:03:52 +0800
Baolin Liu <[email protected]> wrote:

> @@ -960,6 +966,9 @@ int attr_data_get_block(struct ntfs_inode *ni, CLST vcn, 
> CLST clen, CLST *lcn,
>       if (res)
>               *res = NULL;
>  
> +     trace_ntfs3_attr_data_get_block(&ni->vfs_inode, vcn, clen,
> +                                      new != NULL, zero, no_da);

Hmm, why not just pass new in. It looks like this is the only place that
calls this tracepoint, right?


> +TRACE_EVENT(ntfs3_attr_data_get_block,
> +     TP_PROTO(struct inode *inode, u64 vcn, u64 clen, bool create,
> +              bool zero, bool no_da),
> +     TP_ARGS(inode, vcn, clen, create, zero, no_da),
> +     TP_STRUCT__entry(
> +             __field(u64, vcn)
> +             __field(u64, clen)
> +             __field(unsigned long, ino)
> +             __field(dev_t, dev)
> +             __field(bool, create)
> +             __field(bool, zero)
> +             __field(bool, no_da)
> +     ),
> +     TP_fast_assign(
> +             __entry->vcn = vcn;
> +             __entry->clen = clen;
> +             __entry->ino = inode->i_ino;
> +             __entry->dev = inode->i_sb->s_dev;
> +             __entry->create = create;

Then you can have this be:

                __entry->create = new != NULL;

and keep that logic out of the code and out of line in the trace event.

-- Steve

> +             __entry->zero = zero;
> +             __entry->no_da = no_da;
> +     ),
> +     TP_printk("dev=(%d,%d) ino=%lu vcn=%llu clen=%llu create=%d zero=%d 
> no_da=%d",
> +               MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino,
> +               __entry->vcn, __entry->clen, __entry->create,
> +               __entry->zero, __entry->no_da)
> +);
> +
>  #endif /* _TRACE_NTFS3_H */
>  
>  #include <trace/define_trace.h>

Reply via email to