From nobody Sat Sep 13 15:07:23 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B66A2C61DA4 for ; Thu, 2 Feb 2023 03:32:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231612AbjBBDcb (ORCPT ); Wed, 1 Feb 2023 22:32:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58552 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230444AbjBBDca (ORCPT ); Wed, 1 Feb 2023 22:32:30 -0500 Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9697524C98 for ; Wed, 1 Feb 2023 19:32:29 -0800 (PST) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.56]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4P6knX6xkCz16NJr; Thu, 2 Feb 2023 11:30:24 +0800 (CST) Received: from localhost.localdomain (10.175.112.125) by kwepemm600003.china.huawei.com (7.193.23.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Thu, 2 Feb 2023 11:32:27 +0800 From: Longlong Xia To: CC: , , , , , Longlong Xia Subject: [PATCH -next 2/3] devtmpfs: add debug info to handle() Date: Thu, 2 Feb 2023 03:32:02 +0000 Message-ID: <20230202033203.1239239-3-xialonglong1@huawei.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230202033203.1239239-1-xialonglong1@huawei.com> References: <20230202033203.1239239-1-xialonglong1@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.175.112.125] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To kwepemm600003.china.huawei.com (7.193.23.202) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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 --- 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 =3D handle_create(name, mode, uid, gid, dev); else - return handle_remove(name, dev); + ret =3D handle_remove(name, dev); + + if (ret) + pr_err_ratelimited("failed to %s %s, ret =3D %d\n", + mode ? "create" : "remove", name, ret); + + return ret; } =20 static void __noreturn devtmpfs_work_loop(void) --=20 2.25.1