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@xxxxxxxxxx> --- 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