Loading fs/btrfs/sysfs.c +4 −0 Original line number Diff line number Diff line Loading @@ -530,6 +530,8 @@ static void btrfs_sysfs_remove_fsid(struct btrfs_fs_devices *fs_devs) void btrfs_sysfs_remove_one(struct btrfs_fs_info *fs_info) { btrfs_reset_fs_info_ptr(fs_info); if (fs_info->space_info_kobj) { sysfs_remove_files(fs_info->space_info_kobj, allocation_attrs); kobject_del(fs_info->space_info_kobj); Loading Loading @@ -729,6 +731,8 @@ int btrfs_sysfs_add_one(struct btrfs_fs_info *fs_info) struct btrfs_fs_devices *fs_devs = fs_info->fs_devices; struct kobject *super_kobj = &fs_devs->super_kobj; btrfs_set_fs_info_ptr(fs_info); error = btrfs_sysfs_add_fsid(fs_devs, NULL); if (error) return error; Loading fs/btrfs/volumes.c +18 −0 Original line number Diff line number Diff line Loading @@ -6733,3 +6733,21 @@ void btrfs_update_commit_device_bytes_used(struct btrfs_root *root, } unlock_chunks(root); } void btrfs_set_fs_info_ptr(struct btrfs_fs_info *fs_info) { struct btrfs_fs_devices *fs_devices = fs_info->fs_devices; while (fs_devices) { fs_devices->fs_info = fs_info; fs_devices = fs_devices->seed; } } void btrfs_reset_fs_info_ptr(struct btrfs_fs_info *fs_info) { struct btrfs_fs_devices *fs_devices = fs_info->fs_devices; while (fs_devices) { fs_devices->fs_info = NULL; fs_devices = fs_devices->seed; } } fs/btrfs/volumes.h +3 −0 Original line number Diff line number Diff line Loading @@ -254,6 +254,7 @@ struct btrfs_fs_devices { */ int rotating; struct btrfs_fs_info *fs_info; /* sysfs kobjects */ struct kobject super_kobj; struct kobject *device_dir_kobj; Loading Loading @@ -543,5 +544,7 @@ static inline void unlock_chunks(struct btrfs_root *root) } struct list_head *btrfs_get_fs_uuids(void); void btrfs_set_fs_info_ptr(struct btrfs_fs_info *fs_info); void btrfs_reset_fs_info_ptr(struct btrfs_fs_info *fs_info); #endif Loading
fs/btrfs/sysfs.c +4 −0 Original line number Diff line number Diff line Loading @@ -530,6 +530,8 @@ static void btrfs_sysfs_remove_fsid(struct btrfs_fs_devices *fs_devs) void btrfs_sysfs_remove_one(struct btrfs_fs_info *fs_info) { btrfs_reset_fs_info_ptr(fs_info); if (fs_info->space_info_kobj) { sysfs_remove_files(fs_info->space_info_kobj, allocation_attrs); kobject_del(fs_info->space_info_kobj); Loading Loading @@ -729,6 +731,8 @@ int btrfs_sysfs_add_one(struct btrfs_fs_info *fs_info) struct btrfs_fs_devices *fs_devs = fs_info->fs_devices; struct kobject *super_kobj = &fs_devs->super_kobj; btrfs_set_fs_info_ptr(fs_info); error = btrfs_sysfs_add_fsid(fs_devs, NULL); if (error) return error; Loading
fs/btrfs/volumes.c +18 −0 Original line number Diff line number Diff line Loading @@ -6733,3 +6733,21 @@ void btrfs_update_commit_device_bytes_used(struct btrfs_root *root, } unlock_chunks(root); } void btrfs_set_fs_info_ptr(struct btrfs_fs_info *fs_info) { struct btrfs_fs_devices *fs_devices = fs_info->fs_devices; while (fs_devices) { fs_devices->fs_info = fs_info; fs_devices = fs_devices->seed; } } void btrfs_reset_fs_info_ptr(struct btrfs_fs_info *fs_info) { struct btrfs_fs_devices *fs_devices = fs_info->fs_devices; while (fs_devices) { fs_devices->fs_info = NULL; fs_devices = fs_devices->seed; } }
fs/btrfs/volumes.h +3 −0 Original line number Diff line number Diff line Loading @@ -254,6 +254,7 @@ struct btrfs_fs_devices { */ int rotating; struct btrfs_fs_info *fs_info; /* sysfs kobjects */ struct kobject super_kobj; struct kobject *device_dir_kobj; Loading Loading @@ -543,5 +544,7 @@ static inline void unlock_chunks(struct btrfs_root *root) } struct list_head *btrfs_get_fs_uuids(void); void btrfs_set_fs_info_ptr(struct btrfs_fs_info *fs_info); void btrfs_reset_fs_info_ptr(struct btrfs_fs_info *fs_info); #endif