diff options
author | Hongbo Li <lihongbo22@huawei.com> | 2024-08-26 11:17:00 +0200 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2024-11-14 17:57:15 +0100 |
commit | 39ba2b9ac6fd61c67c83b8fd2a3ec6b0bea89490 (patch) | |
tree | 03f7fcdc9c371d3e1b858c96369d72ac4afe2401 | |
parent | ubifs: remove unused ioctl flags GETFLAGS/SETFLAGS (diff) | |
download | linux-39ba2b9ac6fd61c67c83b8fd2a3ec6b0bea89490.tar.xz linux-39ba2b9ac6fd61c67c83b8fd2a3ec6b0bea89490.zip |
ubifs: add support for FS_IOC_GETFSSYSFSPATH
In commit ae8c51175730 ("fs: add FS_IOC_GETFSSYSFSPATH"), a
new fs ioctl was introduced to standardize exporting data from
sysfs across filesystems. The returned path will always be of the
form "$FSTYP/$SYSFS_IDENTIFIER", where the sysfs identifier may
be a UUID or a device name.
The ubifs is a file system based on char device, and the common
method to fill s_sysfs_name (super_set_sysfs_name_bdev) is
unavialable. So in order to support FS_IOC_GETFSSYSFSPATH ioctl,
we fill the s_sysfs_name with ubi_volume_info member which keeps
the format defined in macro UBIFS_DFS_DIR_NAME by using
super_set_sysfs_name_generic.
That's for ubifs, it will output "ubifs/<dev>".
```
$ ./ioctl_getfssysfs_path /mnt/ubifs/testfile
path: ubifs/ubi0_0
$ ls /sys/fs/ubifs/ubi0_0/
errors_crc errors_magic errors_node
```
Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
-rw-r--r-- | fs/ubifs/super.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c index 291583005dd1..cb26b8b27ef6 100644 --- a/fs/ubifs/super.c +++ b/fs/ubifs/super.c @@ -2249,6 +2249,8 @@ static int ubifs_fill_super(struct super_block *sb, void *data, int silent) } super_set_uuid(sb, c->uuid, sizeof(c->uuid)); + super_set_sysfs_name_generic(sb, UBIFS_DFS_DIR_NAME, + c->vi.ubi_num, c->vi.vol_id); mutex_unlock(&c->umount_mutex); return 0; |