ref_tracker: eliminate the ref_tracker_dir name field

Now that we have dentries and the ability to create meaningful symlinks
to them, don't keep a name string in each tracker. Switch the output
format to print "class@address", and drop the name field.

Also, add a kerneldoc header for ref_tracker_dir_init().

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Link: https://patch.msgid.link/20250618-reftrack-dbgfs-v15-9-24fc37ead144@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Jeff Layton
2025-06-18 10:24:22 -04:00
committed by Jakub Kicinski
parent 8f2079f8da
commit 707bd05be7
8 changed files with 24 additions and 16 deletions

View File

@@ -20,7 +20,6 @@ struct ref_tracker_dir {
struct list_head list; /* List of active trackers */
struct list_head quarantine; /* List of dead trackers */
const char *class; /* object classname */
char name[32];
#endif
};
@@ -44,10 +43,21 @@ void ref_tracker_dir_symlink(struct ref_tracker_dir *dir, const char *fmt, ...)
#endif /* CONFIG_DEBUG_FS */
/**
* ref_tracker_dir_init - initialize a ref_tracker dir
* @dir: ref_tracker_dir to be initialized
* @quarantine_count: max number of entries to be tracked
* @class: pointer to static string that describes object type
*
* Initialize a ref_tracker_dir. If debugfs is configured, then a file
* will also be created for it under the top-level ref_tracker debugfs
* directory.
*
* Note that @class must point to a static string.
*/
static inline void ref_tracker_dir_init(struct ref_tracker_dir *dir,
unsigned int quarantine_count,
const char *class,
const char *name)
const char *class)
{
INIT_LIST_HEAD(&dir->list);
INIT_LIST_HEAD(&dir->quarantine);
@@ -57,7 +67,6 @@ static inline void ref_tracker_dir_init(struct ref_tracker_dir *dir,
refcount_set(&dir->untracked, 1);
refcount_set(&dir->no_tracker, 1);
dir->class = class;
strscpy(dir->name, name, sizeof(dir->name));
ref_tracker_dir_debugfs(dir);
stack_depot_init();
}
@@ -82,8 +91,7 @@ int ref_tracker_free(struct ref_tracker_dir *dir,
static inline void ref_tracker_dir_init(struct ref_tracker_dir *dir,
unsigned int quarantine_count,
const char *class,
const char *name)
const char *class)
{
}