On 8/5/25 12:22 PM, Charalampos Mitrodimas wrote: > Eric Sandeen <sandeen@xxxxxxxxxx> writes: > >> On 8/4/25 12:22 PM, Eric Sandeen wrote: >>> On 8/4/25 9:30 AM, Charalampos Mitrodimas wrote: >>>> Mount options (uid, gid, mode) are silently ignored when debugfs is >>>> mounted. This is a regression introduced during the conversion to the >>>> new mount API. >>>> >>>> When the mount API conversion was done, the line that sets >>>> sb->s_fs_info to the parsed options was removed. This causes >>>> debugfs_apply_options() to operate on a NULL pointer. >>>> >>>> As an example, with the bug the "mode" mount option is ignored: >>>> >>>> $ mount -o mode=0666 -t debugfs debugfs /tmp/debugfs_test >>>> $ mount | grep debugfs_test >>>> debugfs on /tmp/debugfs_test type debugfs (rw,relatime) >>>> $ ls -ld /tmp/debugfs_test >>>> drwx------ 25 root root 0 Aug 4 14:16 /tmp/debugfs_test >>> >>> Argh. So, this looks a lot like the issue that got fixed for tracefs in: >>> >>> e4d32142d1de tracing: Fix tracefs mount options >>> >>> Let me look at this; tracefs & debugfs are quite similar, so perhaps >>> keeping the fix consistent would make sense as well but I'll dig >>> into it a bit more. >> >> So, yes - a fix following the pattern of e4d32142d1de does seem to resolve >> this issue. >> >> However, I think we might be playing whack-a-mole here (fixing one fs at a time, >> when the problem is systemic) among filesystems that use get_tree_single() >> and have configurable options. For example, pstore: >> >> # umount /sys/fs/pstore >> >> # mount -t pstore -o kmsg_bytes=65536 none /sys/fs/pstore >> # mount | grep pstore >> none on /sys/fs/pstore type pstore (rw,relatime,seclabel) >> >> # mount -o remount,kmsg_bytes=65536 /sys/fs/pstore >> # mount | grep pstore >> none on /sys/fs/pstore type pstore (rw,relatime,seclabel,kmsg_bytes=65536) >> # >> >> I think gadgetfs most likely has the same problem but I'm not yet sure >> how to test that. >> >> I have no real objection to merging your patch, though I like the >> consistency of following e4d32142d1de a bit more. But I think we should >> find a graceful solution so that any filesystem using get_tree_single >> can avoid this pitfall, if possible. > > Hi, thanks for the review, and yes you're right. > > Maybe a potential systemic fix would be to make get_tree_single() always > call fc->ops->reconfigure() after vfs_get_super() when reusing an > existing superblock, fixing all affected filesystems at once. Yep, I'm looking into that. mount_single used to do this, and IIRC we discussed it before but for some reason opted not to. It seems a bit trickier than I first expected, but I might just be dense. ;) -Eric