summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2024-06-26 12:23:58 +0300
committerChristian Brauner <brauner@kernel.org>2024-06-28 15:36:44 +0300
commit682d12148c264484562f130f0c8584839ebc36fc (patch)
treec9c4a957d10884c0a3489517d102799b11622334 /include
parentd842379313a2c205dae64dbfd0aa13dba142a867 (diff)
parente2f718e25537d3567ababbe4276306efd3f23f47 (diff)
downloadlinux-682d12148c264484562f130f0c8584839ebc36fc.tar.xz
Merge patch series "Add the ability to query mount options in statmount"
Josef Bacik <josef@toxicpanda.com> says: Currently if you want to get mount options for a mount and you're using statmount(), you still have to open /proc/mounts to parse the mount options. statmount() does have the ability to store an arbitrary string however, additionally the way we do that is with a seq_file, which is also how we use ->show_options for the individual file systems. Extent statmount() to have a flag for fetching the mount options of a mount. This allows users to not have to parse /proc mount for anything related to a mount. I've extended the existing statmount() test to validate this feature works as expected. As you can tell from the ridiculous amount of silly string parsing, this is a huge win for users and climate change as we will no longer have to waste several cycles parsing strings anymore. Josef Bacik (4): fs: rename show_mnt_opts -> show_vfsmnt_opts fs: add a helper to show all the options for a mount fs: export mount options via statmount() sefltests: extend the statmount test for mount options fs/internal.h | 5 + fs/namespace.c | 7 + fs/proc_namespace.c | 29 ++-- include/uapi/linux/mount.h | 3 +- .../filesystems/statmount/statmount_test.c | 131 +++++++++++++++++- 5 files changed, 164 insertions(+), 11 deletions(-) Link: https://lore.kernel.org/r/cover.1719257716.git.josef@toxicpanda.com Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'include')
-rw-r--r--include/uapi/linux/mount.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/uapi/linux/mount.h b/include/uapi/linux/mount.h
index ee1559cd6764..225bc366ffcb 100644
--- a/include/uapi/linux/mount.h
+++ b/include/uapi/linux/mount.h
@@ -154,7 +154,7 @@ struct mount_attr {
*/
struct statmount {
__u32 size; /* Total size, including strings */
- __u32 __spare1;
+ __u32 mnt_opts; /* [str] Mount options of the mount */
__u64 mask; /* What results were written */
__u32 sb_dev_major; /* Device ID */
__u32 sb_dev_minor;
@@ -206,6 +206,7 @@ struct mnt_id_req {
#define STATMOUNT_MNT_POINT 0x00000010U /* Want/got mnt_point */
#define STATMOUNT_FS_TYPE 0x00000020U /* Want/got fs_type */
#define STATMOUNT_MNT_NS_ID 0x00000040U /* Want/got mnt_ns_id */
+#define STATMOUNT_MNT_OPTS 0x00000080U /* Want/got mnt_opts */
/*
* Special @mnt_id values that can be passed to listmount