Re: [PATCH 2/2] debugfs: Remove broken no-mount mode

From: Aaron Thompson
Date: Mon Dec 01 2025 - 17:17:45 EST


On 12/1/25 09:15, Mark Brown wrote:
On Thu, Nov 20, 2025 at 10:26:33AM +0000, Aaron Thompson wrote:

debugfs access modes were added in Linux 5.10 (Dec 2020) [1], but the
no-mount mode has behaved effectively the same as the off mode since
Linux 5.12 (Apr 2021) [2]. The only difference is the specific error
code returned by the debugfs_create_* functions, which is -ENOENT in
no-mount mode and -EPERM in off mode.

I'm seeing regressions in -next in a lot of testing stuff which bisect
to this patch. I've got a test that looks at the deferred probe list to
see if it's empty, and the mm split_huge_page_test which uses a debugfs
file called split_huge_pages. Neither of these mount debugfs for
themselves, they just assume it'll be there - it looks like that's not
happening any more but I didn't investigate properly.

I don't immediately see what's getting confused, DEBUG_FS_ALLOW_ALL is
the default and not overridden by anything in any defconfig so
debugfs_enabled still ought to be being set, but I didn't actually try
to debug this yet.

Sample bisect:

git bisect start
# status: waiting for both good and bad commits
...
# bad: [f278809475f6835b56de78b28dc2cc0c7e2c20a4] debugfs: Remove broken no-mount mode
git bisect bad f278809475f6835b56de78b28dc2cc0c7e2c20a4
# first bad commit: [f278809475f6835b56de78b28dc2cc0c7e2c20a4] debugfs: Remove broken no-mount mode

I am terribly sorry, this was a sloppy mistake on my part. The IS_ENABLED() check is missing the CONFIG_ prefix. The fix patch is attached.

Greg, should I send a v2 of the patch series, or a separate patch with just the fix? Or something else? Again, sorry for the trouble.

-- Aaron
commit 92dcc0b68643955317fa4174442a6376df5a8c97
Author: Aaron Thompson <dev@xxxxxxxxxx>
Date: Mon Dec 1 22:15:24 2025 +0000

debugfs: Fix IS_ENABLED check

diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
index 930d66911fcd..4b263c328ed2 100644
--- a/fs/debugfs/inode.c
+++ b/fs/debugfs/inode.c
@@ -35,7 +35,7 @@
static struct vfsmount *debugfs_mount;
static int debugfs_mount_count;
static bool debugfs_registered;
-static bool debugfs_enabled __ro_after_init = IS_ENABLED(DEBUG_FS_ALLOW_ALL);
+static bool debugfs_enabled __ro_after_init = IS_ENABLED(CONFIG_DEBUG_FS_ALLOW_ALL);

/*
* Don't allow access attributes to be changed whilst the kernel is locked down