]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
debugfs show actual source in /proc/mounts
authorMarc Aurèle La France <tsi@tuyoix.net>
Sat, 10 Aug 2024 19:25:27 +0000 (13:25 -0600)
committerChristian Brauner <brauner@kernel.org>
Fri, 30 Aug 2024 06:22:37 +0000 (08:22 +0200)
After its conversion to the new mount API, debugfs displays "none" in
/proc/mounts instead of the actual source.  Fix this by recognising its
"source" mount option.

Signed-off-by: Marc Aurèle La France <tsi@tuyoix.net>
Link: https://lore.kernel.org/r/e439fae2-01da-234b-75b9-2a7951671e27@tuyoix.net
Fixes: a20971c18752 ("vfs: Convert debugfs to use the new mount API")
Cc: stable@vger.kernel.org # 6.10.x: 49abee5991e1: debugfs: Convert to new uid/gid option parsing helpers
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/debugfs/inode.c

index 91521576f5003efb71a2d715a912852ae99b1c91..66d9b3b4c5881defe68fa2527f621e0162f2c48c 100644 (file)
@@ -89,12 +89,14 @@ enum {
        Opt_uid,
        Opt_gid,
        Opt_mode,
+       Opt_source,
 };
 
 static const struct fs_parameter_spec debugfs_param_specs[] = {
        fsparam_gid     ("gid",         Opt_gid),
        fsparam_u32oct  ("mode",        Opt_mode),
        fsparam_uid     ("uid",         Opt_uid),
+       fsparam_string  ("source",      Opt_source),
        {}
 };
 
@@ -126,6 +128,12 @@ static int debugfs_parse_param(struct fs_context *fc, struct fs_parameter *param
        case Opt_mode:
                opts->mode = result.uint_32 & S_IALLUGO;
                break;
+       case Opt_source:
+               if (fc->source)
+                       return invalfc(fc, "Multiple sources specified");
+               fc->source = param->string;
+               param->string = NULL;
+               break;
        /*
         * We might like to report bad mount options here;
         * but traditionally debugfs has ignored all mount options