Thread (15 messages) flat view 15 messages, 3 authors, 2024-12-09

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help