diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-02-07 03:56:15 +0100 |
---|---|---|
committer | Christian Brauner <brauner@kernel.org> | 2024-02-08 21:19:59 +0100 |
commit | a4af51ce229b1e1eab003966dbfebf9d80093a77 (patch) | |
tree | 764a2915360b2a16216a5e7e873361e4716ad7a2 /fs/kernfs | |
parent | Linux 6.8-rc1 (diff) | |
download | linux-a4af51ce229b1e1eab003966dbfebf9d80093a77.tar.xz linux-a4af51ce229b1e1eab003966dbfebf9d80093a77.zip |
fs: super_set_uuid()
Some weird old filesytems have UUID-like things that we wish to expose
as UUIDs, but are smaller; add a length field so that the new
FS_IOC_(GET|SET)UUID ioctls can handle them in generic code.
And add a helper super_set_uuid(), for setting nonstandard length uuids.
Helper is now required for the new FS_IOC_GETUUID ioctl; if
super_set_uuid() hasn't been called, the ioctl won't be supported.
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Link: https://lore.kernel.org/r/20240207025624.1019754-2-kent.overstreet@linux.dev
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'fs/kernfs')
-rw-r--r-- | fs/kernfs/mount.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/kernfs/mount.c b/fs/kernfs/mount.c index 0c93cad0f0ac..e29f4edf9572 100644 --- a/fs/kernfs/mount.c +++ b/fs/kernfs/mount.c @@ -358,7 +358,9 @@ int kernfs_get_tree(struct fs_context *fc) } sb->s_flags |= SB_ACTIVE; - uuid_gen(&sb->s_uuid); + uuid_t uuid; + uuid_gen(&uuid); + super_set_uuid(sb, uuid.b, sizeof(uuid)); down_write(&root->kernfs_supers_rwsem); list_add(&info->node, &info->root->supers); |