summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/sysfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/sysfs.c')
-rw-r--r--fs/btrfs/sysfs.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c
index 5562ce1f7090..4de9bae3e186 100644
--- a/fs/btrfs/sysfs.c
+++ b/fs/btrfs/sysfs.c
@@ -800,6 +800,28 @@ void btrfs_sysfs_add_block_group_type(struct btrfs_block_group_cache *cache)
800 space_info->block_group_kobjs[index] = &rkobj->kobj; 800 space_info->block_group_kobjs[index] = &rkobj->kobj;
801} 801}
802 802
803/*
804 * Remove sysfs directories for all block group types of a given space info and
805 * the space info as well
806 */
807void btrfs_sysfs_remove_space_info(struct btrfs_space_info *space_info)
808{
809 int i;
810
811 for (i = 0; i < BTRFS_NR_RAID_TYPES; i++) {
812 struct kobject *kobj;
813
814 kobj = space_info->block_group_kobjs[i];
815 space_info->block_group_kobjs[i] = NULL;
816 if (kobj) {
817 kobject_del(kobj);
818 kobject_put(kobj);
819 }
820 }
821 kobject_del(&space_info->kobj);
822 kobject_put(&space_info->kobj);
823}
824
803static const char *alloc_name(u64 flags) 825static const char *alloc_name(u64 flags)
804{ 826{
805 switch (flags) { 827 switch (flags) {