Re: [PATCH] erofs: fix lockdep false positives on initializing erofs_pseudo_mnt

From: Baokun Li
Date: Thu Mar 07 2024 - 02:43:59 EST


On 2024/3/7 15:21, Al Viro wrote:
On Thu, Mar 07, 2024 at 03:06:49PM +0800, Baokun Li wrote:
+int erofs_anon_register_fs(void)
+{
+ return register_filesystem(&erofs_anon_fs_type);
+}
What for? The only thing it gives you is an ability to look it up by
name. Which is completely pointless, IMO,
The helper function here is to avoid extern erofs_anon_fs_type(), because
we define it in fscache.c, but also use it in super.c. Moreover, we don't
need
to register it when CONFIG_EROFS_FS_ONDEMAND is not enabled, so we
You don't need to register it at all.

The one and only effect of register_filesystem() is making file_system_type
instance visible to get_fs_type() (and making it show up in /proc/filesystems).

That's it. If you want to have it looked up by name (e.g. for userland
mounts), you need to register. If not, you do not need to do that.

Note that kern_mount() take a pointer to struct file_system_type,
not its (string) name. So all you get from registration is an extra line
in /proc/filesystems. What's the point?
It's dawning on me, thank you so much for explaining! ღ( ´・ᴗ・` )

--
With Best Regards,
Baokun Li
.