Btrfs: sysfs btrfs_kobj_rm_device() pass fs_devices instead of fs_info
since btrfs_kobj_rm_device() does nothing with fs_info Signed-off-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: David Sterba <dsterba@suse.cz>
This commit is contained in:
Родитель
1ba43816af
Коммит
6c14a1641b
|
@ -583,7 +583,7 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,
|
||||||
mutex_unlock(&uuid_mutex);
|
mutex_unlock(&uuid_mutex);
|
||||||
|
|
||||||
/* replace the sysfs entry */
|
/* replace the sysfs entry */
|
||||||
btrfs_kobj_rm_device(fs_info, src_device);
|
btrfs_kobj_rm_device(fs_info->fs_devices, src_device);
|
||||||
btrfs_kobj_add_device(fs_info->fs_devices, tgt_device);
|
btrfs_kobj_add_device(fs_info->fs_devices, tgt_device);
|
||||||
btrfs_rm_dev_replace_free_srcdev(fs_info, src_device);
|
btrfs_rm_dev_replace_free_srcdev(fs_info, src_device);
|
||||||
|
|
||||||
|
|
|
@ -555,7 +555,7 @@ void btrfs_sysfs_remove_one(struct btrfs_fs_info *fs_info)
|
||||||
addrm_unknown_feature_attrs(fs_info, false);
|
addrm_unknown_feature_attrs(fs_info, false);
|
||||||
sysfs_remove_group(&fs_info->fs_devices->super_kobj, &btrfs_feature_attr_group);
|
sysfs_remove_group(&fs_info->fs_devices->super_kobj, &btrfs_feature_attr_group);
|
||||||
sysfs_remove_files(&fs_info->fs_devices->super_kobj, btrfs_attrs);
|
sysfs_remove_files(&fs_info->fs_devices->super_kobj, btrfs_attrs);
|
||||||
btrfs_kobj_rm_device(fs_info, NULL);
|
btrfs_kobj_rm_device(fs_info->fs_devices, NULL);
|
||||||
btrfs_sysfs_remove_fsid(fs_info->fs_devices);
|
btrfs_sysfs_remove_fsid(fs_info->fs_devices);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -636,20 +636,20 @@ static void init_feature_attrs(void)
|
||||||
|
|
||||||
/* when one_device is NULL, it removes all device links */
|
/* when one_device is NULL, it removes all device links */
|
||||||
|
|
||||||
int btrfs_kobj_rm_device(struct btrfs_fs_info *fs_info,
|
int btrfs_kobj_rm_device(struct btrfs_fs_devices *fs_devices,
|
||||||
struct btrfs_device *one_device)
|
struct btrfs_device *one_device)
|
||||||
{
|
{
|
||||||
struct hd_struct *disk;
|
struct hd_struct *disk;
|
||||||
struct kobject *disk_kobj;
|
struct kobject *disk_kobj;
|
||||||
|
|
||||||
if (!fs_info->fs_devices->device_dir_kobj)
|
if (!fs_devices->device_dir_kobj)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
if (one_device && one_device->bdev) {
|
if (one_device && one_device->bdev) {
|
||||||
disk = one_device->bdev->bd_part;
|
disk = one_device->bdev->bd_part;
|
||||||
disk_kobj = &part_to_dev(disk)->kobj;
|
disk_kobj = &part_to_dev(disk)->kobj;
|
||||||
|
|
||||||
sysfs_remove_link(fs_info->fs_devices->device_dir_kobj,
|
sysfs_remove_link(fs_devices->device_dir_kobj,
|
||||||
disk_kobj->name);
|
disk_kobj->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -657,13 +657,13 @@ int btrfs_kobj_rm_device(struct btrfs_fs_info *fs_info,
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
list_for_each_entry(one_device,
|
list_for_each_entry(one_device,
|
||||||
&fs_info->fs_devices->devices, dev_list) {
|
&fs_devices->devices, dev_list) {
|
||||||
if (!one_device->bdev)
|
if (!one_device->bdev)
|
||||||
continue;
|
continue;
|
||||||
disk = one_device->bdev->bd_part;
|
disk = one_device->bdev->bd_part;
|
||||||
disk_kobj = &part_to_dev(disk)->kobj;
|
disk_kobj = &part_to_dev(disk)->kobj;
|
||||||
|
|
||||||
sysfs_remove_link(fs_info->fs_devices->device_dir_kobj,
|
sysfs_remove_link(fs_devices->device_dir_kobj,
|
||||||
disk_kobj->name);
|
disk_kobj->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,6 +84,6 @@ extern struct kobj_type space_info_ktype;
|
||||||
extern struct kobj_type btrfs_raid_ktype;
|
extern struct kobj_type btrfs_raid_ktype;
|
||||||
int btrfs_kobj_add_device(struct btrfs_fs_devices *fs_devices,
|
int btrfs_kobj_add_device(struct btrfs_fs_devices *fs_devices,
|
||||||
struct btrfs_device *one_device);
|
struct btrfs_device *one_device);
|
||||||
int btrfs_kobj_rm_device(struct btrfs_fs_info *fs_info,
|
int btrfs_kobj_rm_device(struct btrfs_fs_devices *fs_devices,
|
||||||
struct btrfs_device *one_device);
|
struct btrfs_device *one_device);
|
||||||
#endif /* _BTRFS_SYSFS_H_ */
|
#endif /* _BTRFS_SYSFS_H_ */
|
||||||
|
|
|
@ -1710,7 +1710,7 @@ int btrfs_rm_device(struct btrfs_root *root, char *device_path)
|
||||||
if (device->bdev) {
|
if (device->bdev) {
|
||||||
device->fs_devices->open_devices--;
|
device->fs_devices->open_devices--;
|
||||||
/* remove sysfs entry */
|
/* remove sysfs entry */
|
||||||
btrfs_kobj_rm_device(root->fs_info, device);
|
btrfs_kobj_rm_device(root->fs_info->fs_devices, device);
|
||||||
}
|
}
|
||||||
|
|
||||||
call_rcu(&device->rcu, free_device);
|
call_rcu(&device->rcu, free_device);
|
||||||
|
@ -2294,7 +2294,7 @@ int btrfs_init_new_device(struct btrfs_root *root, char *device_path)
|
||||||
error_trans:
|
error_trans:
|
||||||
btrfs_end_transaction(trans, root);
|
btrfs_end_transaction(trans, root);
|
||||||
rcu_string_free(device->name);
|
rcu_string_free(device->name);
|
||||||
btrfs_kobj_rm_device(root->fs_info, device);
|
btrfs_kobj_rm_device(root->fs_info->fs_devices, device);
|
||||||
kfree(device);
|
kfree(device);
|
||||||
error:
|
error:
|
||||||
blkdev_put(bdev, FMODE_EXCL);
|
blkdev_put(bdev, FMODE_EXCL);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче