Re: [PATCH v2] tracefs: Use dentry name snapshots instead of heap allocation

From: Steven Rostedt

Date: Thu Mar 05 2026 - 13:12:04 EST


On Fri, 27 Feb 2026 16:15:05 -0500
AnishMulay <anishm7030@xxxxxxxxx> wrote:

> In fs/tracefs/inode.c, tracefs_syscall_mkdir() and tracefs_syscall_rmdir()
> previously used a local helper, get_dname(), which allocated a temporary
> buffer on the heap via kmalloc() to hold the dentry name. This introduced
> unnecessary overhead, an ENOMEM failure path, and required manual memory
> cleanup via kfree().
>
> As suggested by Al Viro, replace this heap allocation with the VFS dentry
> name snapshot API. By stack-allocating a `struct name_snapshot` and using
> take_dentry_name_snapshot() and release_dentry_name_snapshot(), we safely
> capture the dentry name locklessly, eliminate the heap allocation entirely,
> and remove the now-obsolete error handling paths. The get_dname() helper
> is completely removed.
>
> Testing:
> Booted a custom kernel natively in virtme-ng (ARM64). Triggered tracefs
> inode and dentry allocation by creating and removing a custom directory
> under a temporary tracefs mount. Verified that the instance is created
> successfully and that no memory errors or warnings are emitted in dmesg.
>
> Signed-off-by: AnishMulay <anishm7030@xxxxxxxxx>
> ---

It's nice to add version change history below the "---" with a link to the
previous patch:

Changes since v1: https://lore.kernel.org/linux-trace-kernel/20260227194453.213095-1-anishm7030@xxxxxxxxx/

- Use the helper functions take/release_dentry_name_snapshot() instead of
allocating the name. (Al Viro)

As when I pull in a patch, my scripts add a link to the patch itself, and
having that patch have a link to the previous version is always helpful.

(This email serves that purpose for this patch)

-- Steve