diff --git a/kmod/src/super.c b/kmod/src/super.c index 0f644c4f..ea282ce8 100644 --- a/kmod/src/super.c +++ b/kmod/src/super.c @@ -325,16 +325,16 @@ out: return ret; } +/* + * This needs to be setup after reading the super because it uses the + * fsid found in the super block. + */ static int scoutfs_debugfs_setup(struct super_block *sb) { struct scoutfs_sb_info *sbi = SCOUTFS_SB(sb); char name[32]; - /* - * XXX: Move the name variable to sbi and use it in - * init_lock_info as well. - */ - snprintf(name, 32, "%llx", le64_to_cpu(sbi->super.hdr.fsid)); + snprintf(name, ARRAY_SIZE(name), SCSBF, SCSB_ARGS(sb)); sbi->debug_root = debugfs_create_dir(name, scoutfs_debugfs_root); if (!sbi->debug_root) @@ -410,10 +410,10 @@ static int scoutfs_fill_super(struct super_block *sb, void *data, int silent) goto out; } - ret = scoutfs_setup_sysfs(sb) ?: - scoutfs_setup_counters(sb) ?: - scoutfs_read_super(sb, &SCOUTFS_SB(sb)->super) ?: + ret = scoutfs_read_super(sb, &SCOUTFS_SB(sb)->super) ?: scoutfs_debugfs_setup(sb) ?: + scoutfs_setup_sysfs(sb) ?: + scoutfs_setup_counters(sb) ?: scoutfs_options_setup(sb) ?: scoutfs_sysfs_create_attrs(sb, &sbi->mopts_ssa, mount_options_attrs, "mount_options") ?: diff --git a/kmod/src/sysfs.c b/kmod/src/sysfs.c index 7848e039..2c056c5c 100644 --- a/kmod/src/sysfs.c +++ b/kmod/src/sysfs.c @@ -204,10 +204,9 @@ int scoutfs_setup_sysfs(struct super_block *sb) sfsinfo->sb = sb; sbi->sfsinfo = sfsinfo; - /* XXX can have multiple mounts of a device, need mount id */ init_completion(&sfsinfo->sb_id_comp); ret = kobject_init_and_add(&sfsinfo->sb_id_kobj, &sb_id_ktype, - &scoutfs_kset->kobj, "%s", sb->s_id); + &scoutfs_kset->kobj, SCSBF, SCSB_ARGS(sb)); if (ret) kfree(sfsinfo);