Re: [PATCH V5 net-next 1/8] debugfs: Add debugfs_create_devm_dir() helper
From: Greg KH <gregkh@linuxfoundation.org>
Date: 2024-12-06 11:40:47
Also in:
lkml
On Fri, Dec 06, 2024 at 07:16:22PM +0800, Jijie Shao wrote:
quoted hunk ↗ jump to hunk
Add debugfs_create_devm_dir() helper Signed-off-by: Jijie Shao <shaojijie@huawei.com> --- fs/debugfs/inode.c | 36 ++++++++++++++++++++++++++++++++++++ include/linux/debugfs.h | 10 ++++++++++ 2 files changed, 46 insertions(+)diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c index 38a9c7eb97e6..f682c4952a27 100644 --- a/fs/debugfs/inode.c +++ b/fs/debugfs/inode.c@@ -610,6 +610,42 @@ struct dentry *debugfs_create_dir(const char *name, struct dentry *parent) } EXPORT_SYMBOL_GPL(debugfs_create_dir); +static void debugfs_remove_devm(void *dentry_rwa) +{ + struct dentry *dentry = dentry_rwa; + + debugfs_remove(dentry); +} + +/** + * debugfs_create_devm_dir - Managed debugfs_create_dir() + * @dev: Device that owns the action + * @name: a pointer to a string containing the name of the directory to + * create. + * @parent: a pointer to the parent dentry for this file. This should be a + * directory dentry if set. If this parameter is NULL, then the + * directory will be created in the root of the debugfs filesystem. + * Managed debugfs_create_dir(). dentry will automatically be remove on + * driver detach. + */ +struct dentry *debugfs_create_devm_dir(struct device *dev, const char *name, + struct dentry *parent) +{ + struct dentry *dentry; + int ret; + + dentry = debugfs_create_dir(name, parent); + if (IS_ERR(dentry)) + return dentry; + + ret = devm_add_action_or_reset(dev, debugfs_remove_devm, dentry); + if (ret) + ERR_PTR(ret);
You don't clean up the directory you created if this failed? Why not? thanks, greg k-h