Commit e17125b5 authored by Anand Jain's avatar Anand Jain Committed by David Sterba

btrfs: use sprout device_list_mutex in btrfs_init_devices_late

On a mounted sprout filesystem, all threads now are using the
sprout::device_list_mutex, and this is the only code using the
seed::device_list_mutex. This patch converts to use the sprouts
fs_info->fs_devices->device_list_mutex.

The same reasoning holds true here, that device delete is holding
the sprout::device_list_mutex.
Signed-off-by: default avatarAnand Jain <anand.jain@oracle.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 2fca0db0
...@@ -7195,16 +7195,14 @@ void btrfs_init_devices_late(struct btrfs_fs_info *fs_info) ...@@ -7195,16 +7195,14 @@ void btrfs_init_devices_late(struct btrfs_fs_info *fs_info)
mutex_lock(&fs_devices->device_list_mutex); mutex_lock(&fs_devices->device_list_mutex);
list_for_each_entry(device, &fs_devices->devices, dev_list) list_for_each_entry(device, &fs_devices->devices, dev_list)
device->fs_info = fs_info; device->fs_info = fs_info;
mutex_unlock(&fs_devices->device_list_mutex);
list_for_each_entry(seed_devs, &fs_devices->seed_list, seed_list) { list_for_each_entry(seed_devs, &fs_devices->seed_list, seed_list) {
mutex_lock(&seed_devs->device_list_mutex);
list_for_each_entry(device, &seed_devs->devices, dev_list) list_for_each_entry(device, &seed_devs->devices, dev_list)
device->fs_info = fs_info; device->fs_info = fs_info;
mutex_unlock(&seed_devs->device_list_mutex);
seed_devs->fs_info = fs_info; seed_devs->fs_info = fs_info;
} }
mutex_unlock(&fs_devices->device_list_mutex);
} }
static u64 btrfs_dev_stats_value(const struct extent_buffer *eb, static u64 btrfs_dev_stats_value(const struct extent_buffer *eb,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment