[PATCH -next 2/3] devtmpfs: add debug info to handle()

Longlong Xia
2023-02-02T03:32:33Z

The devtmpfs_*_node() are used to mount/unmount devices to /dev, but their
callers don't check their return value, so we don't know the reason for
the failure. Let's add some debug info in handle() to help users know
why failed.

Signed-off-by: Longlong Xia <xialonglong1@huawei.com>
---
drivers/base/devtmpfs.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c
index ae72d4ba8547..77ca64f708ce 100644
--- a/drivers/base/devtmpfs.c
+++ b/drivers/base/devtmpfs.c
@@ -389,10 +389,18 @@ static __initdata DECLARE_COMPLETION(setup_done);
static int handle(const char *name, umode_t mode, kuid_t uid, kgid_t gid,
struct device *dev)
{
+ int ret;
+
if (mode)
- return handle_create(name, mode, uid, gid, dev);
+ ret = handle_create(name, mode, uid, gid, dev);
else
- return handle_remove(name, dev);
+ ret = handle_remove(name, dev);
+
+ if (ret)
+ pr_err_ratelimited("failed to %s %s, ret = %d\n",
+ mode ? "create" : "remove", name, ret);
+
+ return ret;
}

static void __noreturn devtmpfs_work_loop(void)
--
2.25.1