On 9/2/22 6:53 PM, Jia Zhu wrote: > In shared domain mount procedure, add 'domain_id' prefix to register > sysfs entry. Thus we could distinguish mounts that don't use shared > domain. > > Signed-off-by: Jia Zhu <zhujia.zj@xxxxxxxxxxxxx> > --- > fs/erofs/sysfs.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/fs/erofs/sysfs.c b/fs/erofs/sysfs.c > index c1383e508bbe..c0031d7bd817 100644 > --- a/fs/erofs/sysfs.c > +++ b/fs/erofs/sysfs.c > @@ -201,12 +201,21 @@ static struct kobject erofs_feat = { > int erofs_register_sysfs(struct super_block *sb) > { > struct erofs_sb_info *sbi = EROFS_SB(sb); > + char *name = NULL; > int err; > > + if (erofs_is_fscache_mode(sb)) { > + name = kasprintf(GFP_KERNEL, "%s%s%s", sbi->opt.domain_id ? > + sbi->opt.domain_id : "", sbi->opt.domain_id ? "," : "", > + sbi->opt.fsid); > + if (!name) > + return -ENOMEM; > + } How about: name = erofs_is_fscache_mode(sb) ? sbi->opt.fsid : sb->s_id; if (sbi->opt.domain_id) { str = kasprintf(GFP_KERNEL, "%s,%s", sbi->opt.domain_id, sbi->opt.fsid); name = str; } > sbi->s_kobj.kset = &erofs_root; > init_completion(&sbi->s_kobj_unregister); > err = kobject_init_and_add(&sbi->s_kobj, &erofs_sb_ktype, NULL, "%s", > - erofs_is_fscache_mode(sb) ? sbi->opt.fsid : sb->s_id); > + name ? name : sb->s_id); kobject_init_and_add(..., "%s", name); kfree(str); though it's still not such straightforward... Any better idea? > + kfree(name); > if (err) > goto put_sb_kobj; > return 0; -- Thanks, Jingbo