{"id":2218975,"url":"http://patchwork.ozlabs.org/api/patches/2218975/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-mtd/patch/20260402081332.523352-1-dmantipov@yandex.ru/","project":{"id":3,"url":"http://patchwork.ozlabs.org/api/projects/3/?format=json","name":"Linux MTD development","link_name":"linux-mtd","list_id":"linux-mtd.lists.infradead.org","list_email":"linux-mtd@lists.infradead.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260402081332.523352-1-dmantipov@yandex.ru>","list_archive_url":null,"date":"2026-04-02T08:13:32","name":"ubifs: prefer kstrtobool_from_user() over custom helper","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"40728fecbc9dcce31225268d6fdfcbf3afe54b8e","submitter":{"id":87610,"url":"http://patchwork.ozlabs.org/api/people/87610/?format=json","name":"Dmitry Antipov","email":"dmantipov@yandex.ru"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-mtd/patch/20260402081332.523352-1-dmantipov@yandex.ru/mbox/","series":[{"id":498450,"url":"http://patchwork.ozlabs.org/api/series/498450/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-mtd/list/?series=498450","date":"2026-04-02T08:13:32","name":"ubifs: prefer kstrtobool_from_user() over custom helper","version":1,"mbox":"http://patchwork.ozlabs.org/series/498450/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2218975/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2218975/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=lists.infradead.org header.i=@lists.infradead.org\n header.a=rsa-sha256 header.s=bombadil.20210309 header.b=IhynMwvB;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n unprotected) header.d=yandex.ru header.i=@yandex.ru header.a=rsa-sha256\n header.s=mail header.b=q4VIRIro;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=none (no SPF record) smtp.mailfrom=lists.infradead.org\n (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org;\n envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org;\n receiver=patchwork.ozlabs.org)","\n mail-nwsmtp-smtp-production-main-67.sas.yp-c.yandex.net;\n dkim=pass header.i=@yandex.ru"],"Received":["from bombadil.infradead.org (bombadil.infradead.org\n [IPv6:2607:7c80:54:3::133])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fmZPm4LRRz1yCs\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 02 Apr 2026 19:13:59 +1100 (AEDT)","from localhost ([::1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1w8DBS-0000000HA1h-1Pev;\n\tThu, 02 Apr 2026 08:13:46 +0000","from forward102b.mail.yandex.net ([2a02:6b8:c02:900:1:45:d181:d102])\n\tby bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1w8DBP-0000000H9y9-0uix\n\tfor linux-mtd@lists.infradead.org;\n\tThu, 02 Apr 2026 08:13:45 +0000","from mail-nwsmtp-smtp-production-main-67.sas.yp-c.yandex.net\n (mail-nwsmtp-smtp-production-main-67.sas.yp-c.yandex.net\n [IPv6:2a02:6b8:c23:143b:0:640:90e9:0])\n\tby forward102b.mail.yandex.net (Yandex) with ESMTPS id 04C44C00A9;\n\tThu, 02 Apr 2026 11:13:35 +0300 (MSK)","by mail-nwsmtp-smtp-production-main-67.sas.yp-c.yandex.net\n (smtp/Yandex) with ESMTPSA id XDXIfs9Sr4Y0-rNuuaNTl;\n\tThu, 02 Apr 2026 11:13:34 +0300"],"DKIM-Signature":["v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20210309; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post:\n\tList-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:Cc\n\t:To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:\n\tResent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:\n\tList-Owner; bh=UXzZz35P29oLpSQ9CTSAuWkn4YTBoglr0/8VPeIst2M=; b=IhynMwvB5qu8JG\n\tnghKEhFDi/eHmaPMm0oopEO7J8PLKGjwdAOlDhZsOvtJbdNPLqJwMQy6K7SviNAPR1Z+qGfwAF3aA\n\tDT9oRBqXkTqwH9qZy+cAbeWcqZL0wUV0lNMGM+CYxNh9RNk/NGGR4rVbHv79zk5wohzODpGgk9iSC\n\tJuXsBM8P4uoCrr2R+dT0BLYTSsQkT7j/Hm+8bj1qJlhySptHt8fcjMZCBz816h+m1uXKJmcLp4Dms\n\tstMv1GwiqXzx0q44DDiijje6cCk0tNlQaY/ATf99RadORhdQlcUFiAW1aBMLX+RfpNJFF8y3yd7bT\n\ttRYM6WqurGXtroUQZjKg==;","v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail;\n\tt=1775117614; bh=TOssEmYdfyEZmx1m/i8FVjKPTmZhw/elUukSraze2CY=;\n\th=Message-ID:Date:Cc:Subject:To:From;\n\tb=q4VIRIroxcriYK++Jg3+72OeXFShaSP72wYis1mx1g6sfVMCyH5ih48t/C/aCvCc8\n\t JDbRhnIPiYVAmHrHLXpmZOFSlgEPoaYQRpnhbGh9Uh6uiDiaCKr5btP028gvh2N0Yu\n\t xTpG6mpUnRMZNY/K5fXgTCA8uCgMEWv0zsPRFufw="],"X-Yandex-Fwd":"1","From":"Dmitry Antipov <dmantipov@yandex.ru>","To":"Richard Weinberger <richard@nod.at>","Cc":"Zhihao Cheng <chengzhihao1@huawei.com>,\n\tlinux-mtd@lists.infradead.org,\n\tDmitry Antipov <dmantipov@yandex.ru>","Subject":"[PATCH] ubifs: prefer kstrtobool_from_user() over custom helper","Date":"Thu,  2 Apr 2026 11:13:32 +0300","Message-ID":"<20260402081332.523352-1-dmantipov@yandex.ru>","X-Mailer":"git-send-email 2.53.0","MIME-Version":"1.0","X-CRM114-Version":"20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ","X-CRM114-CacheID":"sfid-20260402_011343_791983_DF24BA44 ","X-CRM114-Status":"GOOD (  12.46  )","X-Spam-Score":"-2.8 (--)","X-Spam-Report":"Spam detection software,\n running on the system \"bombadil.infradead.org\",\n has NOT identified this incoming email as spam.  The original\n message has been attached to this so you can view it or label\n similar future email.  If you have any questions, see\n the administrator of that system for details.\n Content preview:  Adjust 'dfs_file_write()' and 'dfs_global_file_write()' to\n    prefer generic 'kstrtobool_from_user()' over an ad-hoc\n 'interpret_user_input()'\n    helper, thus making the latter not needed anymore. Signed-off-by: Dmitry\n   Antipov --- fs/ubifs/debug.c | 44 ++++++++++ 1 file changed,\n 10 insertions(+),\n    34 deletions(-)\n Content analysis details:   (-2.8 points, 5.0 required)\n  pts rule name              description\n ---- ----------------------\n --------------------------------------------------\n -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/, low\n                             trust\n                             [2a02:6b8:c02:900:1:45:d181:d102 listed in]\n                             [list.dnswl.org]\n -0.0 SPF_PASS               SPF: sender matches SPF record\n  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record\n  0.1 DKIM_SIGNED            Message has a DKIM or DK signature,\n not necessarily valid\n -0.1 DKIM_VALID_EF          Message has a valid DKIM or DK signature from\n                             envelope-from domain\n -0.1 DKIM_VALID_AU          Message has a valid DKIM or DK signature from\n author's\n                             domain\n -0.1 DKIM_VALID             Message has at least one valid DKIM or DK\n signature\n -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n                             [score: 0.0000]\n  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail\n provider\n                             [dmantipov(at)yandex.ru]","X-BeenThere":"linux-mtd@lists.infradead.org","X-Mailman-Version":"2.1.34","Precedence":"list","List-Id":"Linux MTD discussion mailing list <linux-mtd.lists.infradead.org>","List-Unsubscribe":"<http://lists.infradead.org/mailman/options/linux-mtd>,\n <mailto:linux-mtd-request@lists.infradead.org?subject=unsubscribe>","List-Archive":"<http://lists.infradead.org/pipermail/linux-mtd/>","List-Post":"<mailto:linux-mtd@lists.infradead.org>","List-Help":"<mailto:linux-mtd-request@lists.infradead.org?subject=help>","List-Subscribe":"<http://lists.infradead.org/mailman/listinfo/linux-mtd>,\n <mailto:linux-mtd-request@lists.infradead.org?subject=subscribe>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Sender":"\"linux-mtd\" <linux-mtd-bounces@lists.infradead.org>","Errors-To":"linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org"},"content":"Adjust 'dfs_file_write()' and 'dfs_global_file_write()' to prefer generic\n'kstrtobool_from_user()' over an ad-hoc 'interpret_user_input()' helper,\nthus making the latter not needed anymore.\n\nSigned-off-by: Dmitry Antipov <dmantipov@yandex.ru>\n---\n fs/ubifs/debug.c | 44 ++++++++++----------------------------------\n 1 file changed, 10 insertions(+), 34 deletions(-)","diff":"diff --git a/fs/ubifs/debug.c b/fs/ubifs/debug.c\nindex 160c16aa7b6e..252cf82012cf 100644\n--- a/fs/ubifs/debug.c\n+++ b/fs/ubifs/debug.c\n@@ -2732,39 +2732,14 @@ static ssize_t dfs_file_read(struct file *file, char __user *u, size_t count,\n \treturn provide_user_output(val, u, count, ppos);\n }\n \n-/**\n- * interpret_user_input - interpret user debugfs file input.\n- * @u: user-provided buffer with the input\n- * @count: buffer size\n- *\n- * This is a helper function which interpret user input to a boolean UBIFS\n- * debugfs file. Returns %0 or %1 in case of success and a negative error code\n- * in case of failure.\n- */\n-static int interpret_user_input(const char __user *u, size_t count)\n-{\n-\tsize_t buf_size;\n-\tchar buf[8];\n-\n-\tbuf_size = min_t(size_t, count, (sizeof(buf) - 1));\n-\tif (copy_from_user(buf, u, buf_size))\n-\t\treturn -EFAULT;\n-\n-\tif (buf[0] == '1')\n-\t\treturn 1;\n-\telse if (buf[0] == '0')\n-\t\treturn 0;\n-\n-\treturn -EINVAL;\n-}\n-\n static ssize_t dfs_file_write(struct file *file, const char __user *u,\n \t\t\t      size_t count, loff_t *ppos)\n {\n \tstruct ubifs_info *c = file->private_data;\n \tstruct ubifs_debug_info *d = c->dbg;\n \tstruct dentry *dent = file->f_path.dentry;\n-\tint val;\n+\tbool val;\n+\tint ret;\n \n \tif (file->f_path.dentry == d->dfs_dump_lprops) {\n \t\tubifs_dump_lprops(c);\n@@ -2781,9 +2756,9 @@ static ssize_t dfs_file_write(struct file *file, const char __user *u,\n \t\treturn count;\n \t}\n \n-\tval = interpret_user_input(u, count);\n-\tif (val < 0)\n-\t\treturn val;\n+\tret = kstrtobool_from_user(u, count, &val);\n+\tif (unlikely(ret))\n+\t\treturn ret;\n \n \tif (dent == d->dfs_chk_gen)\n \t\td->chk_gen = val;\n@@ -2926,11 +2901,12 @@ static ssize_t dfs_global_file_write(struct file *file, const char __user *u,\n \t\t\t\t     size_t count, loff_t *ppos)\n {\n \tstruct dentry *dent = file->f_path.dentry;\n-\tint val;\n+\tbool val;\n+\tint ret;\n \n-\tval = interpret_user_input(u, count);\n-\tif (val < 0)\n-\t\treturn val;\n+\tret = kstrtobool_from_user(u, count, &val);\n+\tif (unlikely(ret))\n+\t\treturn ret;\n \n \tif (dent == dfs_chk_gen)\n \t\tubifs_dbg.chk_gen = val;\n","prefixes":[]}