summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHongbo Li <lihongbo22@huawei.com>2024-08-26 11:17:00 +0200
committerRichard Weinberger <richard@nod.at>2024-11-14 17:57:15 +0100
commit39ba2b9ac6fd61c67c83b8fd2a3ec6b0bea89490 (patch)
tree03f7fcdc9c371d3e1b858c96369d72ac4afe2401
parentubifs: remove unused ioctl flags GETFLAGS/SETFLAGS (diff)
downloadlinux-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.c2
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;