erofs: add support for FS_IOC_GETFSSYSFSPATH
FS_IOC_GETFSSYSFSPATH ioctl exposes /sys/fs path of a given filesystem, potentially standarizing sysfs reporting. This patch add support for FS_IOC_GETFSSYSFSPATH for erofs, "erofs/<dev>" will be outputted for bdev cases, "erofs/[domain_id,]<fs_id>" will be outputted for fscache cases. Signed-off-by: Huang Xiaojia <huangxiaojia2@huawei.com> Link: https://lore.kernel.org/r/20240720082335.441563-1-huangxiaojia2@huawei.com Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
This commit is contained in:
parent
7dc5537c3f
commit
684b290abc
@ -576,6 +576,21 @@ static const struct export_operations erofs_export_ops = {
|
||||
.get_parent = erofs_get_parent,
|
||||
};
|
||||
|
||||
static void erofs_set_sysfs_name(struct super_block *sb)
|
||||
{
|
||||
struct erofs_sb_info *sbi = EROFS_SB(sb);
|
||||
|
||||
if (erofs_is_fscache_mode(sb)) {
|
||||
if (sbi->domain_id)
|
||||
super_set_sysfs_name_generic(sb, "%s,%s",sbi->domain_id,
|
||||
sbi->fsid);
|
||||
else
|
||||
super_set_sysfs_name_generic(sb, "%s", sbi->fsid);
|
||||
return;
|
||||
}
|
||||
super_set_sysfs_name_id(sb);
|
||||
}
|
||||
|
||||
static int erofs_fc_fill_super(struct super_block *sb, struct fs_context *fc)
|
||||
{
|
||||
struct inode *inode;
|
||||
@ -643,6 +658,7 @@ static int erofs_fc_fill_super(struct super_block *sb, struct fs_context *fc)
|
||||
sb->s_flags |= SB_POSIXACL;
|
||||
else
|
||||
sb->s_flags &= ~SB_POSIXACL;
|
||||
erofs_set_sysfs_name(sb);
|
||||
|
||||
#ifdef CONFIG_EROFS_FS_ZIP
|
||||
xa_init(&sbi->managed_pslots);
|
||||
|
Loading…
Reference in New Issue
Block a user