samples/vfs: check whether flag was raised
authorChristian Brauner <brauner@kernel.org>
Tue, 4 Feb 2025 11:27:48 +0000 (12:27 +0100)
committerChristian Brauner <brauner@kernel.org>
Wed, 12 Feb 2025 11:12:27 +0000 (12:12 +0100)
For string options the kernel will raise the corresponding flag only if
the string isn't empty. So check for the flag.

Link: https://lore.kernel.org/r/20250204-work-mnt_idmap-statmount-v2-3-007720f39f2e@kernel.org
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
samples/vfs/test-list-all-mounts.c

index 1a02ea4..ce272de 100644 (file)
@@ -138,10 +138,11 @@ next:
                        printf("mnt_id:\t\t%" PRIu64 "\nmnt_parent_id:\t%" PRIu64 "\nfs_type:\t%s\nmnt_root:\t%s\nmnt_point:\t%s\nmnt_opts:\t%s\n\n",
                               (uint64_t)stmnt->mnt_id,
                               (uint64_t)stmnt->mnt_parent_id,
-                              stmnt->str + stmnt->fs_type,
-                              stmnt->str + stmnt->mnt_root,
-                              stmnt->str + stmnt->mnt_point,
-                              stmnt->str + stmnt->mnt_opts);
+                              (stmnt->mask & STATMOUNT_FS_TYPE)   ? stmnt->str + stmnt->fs_type   : "",
+                              (stmnt->mask & STATMOUNT_MNT_ROOT)  ? stmnt->str + stmnt->mnt_root  : "",
+                              (stmnt->mask & STATMOUNT_MNT_POINT) ? stmnt->str + stmnt->mnt_point : "",
+                              (stmnt->mask & STATMOUNT_MNT_OPTS)  ? stmnt->str + stmnt->mnt_opts  : "");
+
                        free(stmnt);
                }
        }