ubifs: add support for FS_IOC_GETFSSYSFSPATH
authorHongbo Li <lihongbo22@huawei.com>
Mon, 26 Aug 2024 09:17:00 +0000 (17:17 +0800)
committerRichard Weinberger <richard@nod.at>
Thu, 14 Nov 2024 16:57:15 +0000 (17:57 +0100)
commit39ba2b9ac6fd61c67c83b8fd2a3ec6b0bea89490
tree03f7fcdc9c371d3e1b858c96369d72ac4afe2401
parent919cc964abdb071f50c8f03e3b36fe0b5c60ef0d
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>
fs/ubifs/super.c