slub: don't mess with ->d_name
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 12 Jan 2025 08:07:01 +0000 (08:07 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Jan 2025 12:14:37 +0000 (13:14 +0100)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Link: https://lore.kernel.org/r/20250112080705.141166-17-viro@zeniv.linux.org.uk
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
mm/slub.c

index c2151c9fee228d121a9cbcc220c3ae054769dacf..4f006b04755281c66e890cafcf3ac58a686a3120 100644 (file)
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -7513,10 +7513,7 @@ static int slab_debug_trace_open(struct inode *inode, struct file *filep)
                return -ENOMEM;
        }
 
-       if (strcmp(filep->f_path.dentry->d_name.name, "alloc_traces") == 0)
-               alloc = TRACK_ALLOC;
-       else
-               alloc = TRACK_FREE;
+       alloc = debugfs_get_aux_num(filep);
 
        if (!alloc_loc_track(t, PAGE_SIZE / sizeof(struct location), GFP_KERNEL)) {
                bitmap_free(obj_map);
@@ -7572,11 +7569,11 @@ static void debugfs_slab_add(struct kmem_cache *s)
 
        slab_cache_dir = debugfs_create_dir(s->name, slab_debugfs_root);
 
-       debugfs_create_file("alloc_traces", 0400,
-               slab_cache_dir, s, &slab_debugfs_fops);
+       debugfs_create_file_aux_num("alloc_traces", 0400, slab_cache_dir, s,
+                                       TRACK_ALLOC, &slab_debugfs_fops);
 
-       debugfs_create_file("free_traces", 0400,
-               slab_cache_dir, s, &slab_debugfs_fops);
+       debugfs_create_file_aux_num("free_traces", 0400, slab_cache_dir, s,
+                                       TRACK_FREE, &slab_debugfs_fops);
 }
 
 void debugfs_slab_release(struct kmem_cache *s)