|
@@ -6146,10 +6146,14 @@ void btrfs_init_devices_late(struct btrfs_fs_info *fs_info)
|
|
|
struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;
|
|
|
struct btrfs_device *device;
|
|
|
|
|
|
- mutex_lock(&fs_devices->device_list_mutex);
|
|
|
- list_for_each_entry(device, &fs_devices->devices, dev_list)
|
|
|
- device->dev_root = fs_info->dev_root;
|
|
|
- mutex_unlock(&fs_devices->device_list_mutex);
|
|
|
+ while (fs_devices) {
|
|
|
+ mutex_lock(&fs_devices->device_list_mutex);
|
|
|
+ list_for_each_entry(device, &fs_devices->devices, dev_list)
|
|
|
+ device->dev_root = fs_info->dev_root;
|
|
|
+ mutex_unlock(&fs_devices->device_list_mutex);
|
|
|
+
|
|
|
+ fs_devices = fs_devices->seed;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
static void __btrfs_reset_dev_stats(struct btrfs_device *dev)
|