From mboxrd@z Thu Jan 1 00:00:00 1970 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id B6775C433F5 for ; Tue, 8 Feb 2022 17:21:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3E8E36B0073; Tue, 8 Feb 2022 12:21:01 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 371D56B0075; Tue, 8 Feb 2022 12:21:01 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2396B6B0078; Tue, 8 Feb 2022 12:21:01 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0235.hostedemail.com [216.40.44.235]) by kanga.kvack.org (Postfix) with ESMTP id 07D256B0075 for ; Tue, 8 Feb 2022 12:21:01 -0500 (EST) Received: from smtpin18.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id C0A81181CAECD for ; Tue, 8 Feb 2022 17:21:00 +0000 (UTC) X-FDA: 79120277880.18.B575694 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf03.hostedemail.com (Postfix) with ESMTP id 0250F20004; Tue, 8 Feb 2022 17:20:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Sender:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=qa2/OpTRnZR6XCJ42u6II3WcBdJPjRxjOZX8VpHnT7Y=; b=EKvAN9P2bdw4MI3T1lHp53q3Ec zAe7iFvnkibbwzHMR+0Lp69Jj//rIUwSZrCCwvVR/ODasZb/OPeLNZTLsoyTBM610UaZZFjNZ/y++ WsPb0LOzWvDajtIPaw1noGRxo3V5BgHDQjK52aJ2GPGAfbrHNj/r6jyCtBgYvzMYwvhjXuHmpNuiS XL/3bDmFpkGjmHkhPc1fBFWmaBub+YxIHqVryEMAa77831LXhstlZJ2oVpZecyP5a2A/uHGFhgTwJ ly6CiMvB7/e5XOHW8+XnWLMBHJKrn0dI2Ooc2V5Ga382Z4vAKWPKu/QMjdCG2X4QHXRQQ5t5XzeE5 jv+7kavQ==; Received: from mcgrof by bombadil.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1nHUAU-00F2wG-Nq; Tue, 08 Feb 2022 17:20:42 +0000 Date: Tue, 8 Feb 2022 09:20:42 -0800 From: Luis Chamberlain To: Tong Zhang Cc: Domenico Andreoli , "Eric W. Biederman" , David Airlie , Andrew Morton , amir73il@gmail.com, Andy Shevchenko , Arnd Bergmann , bcrl@kvack.org, benh@kernel.crashing.org, clemens@ladisch.de, crope@iki.fi, dgilbert@interlog.com, Greg KH , jack@suse.cz, jani.nikula@intel.com, jani.nikula@linux.intel.com, "James E.J. Bottomley" , jlbec@evilplan.org, john.ogness@linutronix.de, joonas.lahtinen@linux.intel.com, Joseph Qi , julia.lawall@inria.fr, Kees Cook , kernel@tuxforce.de, Linux Memory Management List , mark@fasheh.com, "Martin K. Petersen" , mm-commits@vger.kernel.org, nixiaoming@huawei.com, penguin-kernel@i-love.sakura.ne.jp, peterz@infradead.org, phil@philpotter.co.uk, pjt@google.com, pmladek@suse.com, rafael@kernel.org, rodrigo.vivi@intel.com, rostedt@goodmis.org, senozhatsky@chromium.org, sre@kernel.org, steve@sk2.org, surenb@google.com, torvalds@linux-foundation.org, tytso@mit.edu, Al Viro , wangqing@vivo.com, Iurii Zaikin , open list Subject: Re: [PATCH] Fix regression due to "fs: move binfmt_misc sysctl to its own file" Message-ID: References: <20220121221021.60533b009c357d660791476e@linux-foundation.org> <20220122061228.nmuo75sDn%akpm@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 0250F20004 Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=EKvAN9P2; spf=none (imf03.hostedemail.com: domain of mcgrof@infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=mcgrof@infradead.org; dmarc=fail reason="No valid SPF, DKIM not aligned (relaxed)" header.from=kernel.org (policy=none) X-Stat-Signature: q8oj6y5csnhf1f4gsgt9imcf5jig1wrr X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1644340858-579724 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Mon, Feb 07, 2022 at 02:53:21PM -0800, Tong Zhang wrote: > On Mon, Feb 7, 2022 at 1:46 PM Luis Chamberlain wrote: > > > > OK I think the issue here should have been that declaring this on > > fs/binfmt_misc.c creates the chicken and the egg issue, and so we > > need to do this on built-in code. Instead of your patch can you try > > this instead, it just always creates the sysctl mount always now > > so long as proc sysctl is enabled. It does not do the unregistration > > as we always want the path present as it used to be before as well. > > > > diff --git a/fs/file_table.c b/fs/file_table.c > > index 57edef16dce4..4f4739c9405c 100644 > > --- a/fs/file_table.c > > +++ b/fs/file_table.c > > @@ -119,6 +119,7 @@ static struct ctl_table fs_stat_sysctls[] = { > > static int __init init_fs_stat_sysctls(void) > > { > > register_sysctl_init("fs", fs_stat_sysctls); > > + register_sysctl_mount_point("fs/binfmt_misc"); > > return 0; > > } > > fs_initcall(init_fs_stat_sysctls); > > I'm looking at the original code, and it seems that if we don't select > CONFIG_BINFMT_MISC at all, > this file won't be created. This would suggest an IF MACRO around > > + register_sysctl_mount_point("fs/binfmt_misc"); > and it should looks like > +#if IS_ENABLED(CONFIG_BINFMT_MISC) > + register_sysctl_mount_point("fs/binfmt_misc"); > +#endif > or if you prefer original style: > #if defined(CONFIG_BINFMT_MISC) || defined(CONFIG_BINFMT_MISC_MODULE) Or better yet using IS_ENABLED() to avoid the ifdef cruft: diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c index c07f35719ee3..4b8f1b11a7c8 100644 --- a/fs/binfmt_misc.c +++ b/fs/binfmt_misc.c @@ -817,20 +817,16 @@ static struct file_system_type bm_fs_type = { }; MODULE_ALIAS_FS("binfmt_misc"); -static struct ctl_table_header *binfmt_misc_header; - static int __init init_misc_binfmt(void) { int err = register_filesystem(&bm_fs_type); if (!err) insert_binfmt(&misc_format); - binfmt_misc_header = register_sysctl_mount_point("fs/binfmt_misc"); return 0; } static void __exit exit_misc_binfmt(void) { - unregister_sysctl_table(binfmt_misc_header); unregister_binfmt(&misc_format); unregister_filesystem(&bm_fs_type); } diff --git a/fs/file_table.c b/fs/file_table.c index 57edef16dce4..4969021fa676 100644 --- a/fs/file_table.c +++ b/fs/file_table.c @@ -119,6 +119,8 @@ static struct ctl_table fs_stat_sysctls[] = { static int __init init_fs_stat_sysctls(void) { register_sysctl_init("fs", fs_stat_sysctls); + if (IS_ENABLED(CONFIG_BINFMT_MISC)) + register_sysctl_mount_point("fs/binfmt_misc"); return 0; } fs_initcall(init_fs_stat_sysctls);