diff options
author | Anand Jain <anand.jain@oracle.com> | 2018-04-11 22:29:36 -0400 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2018-05-28 12:23:16 -0400 |
commit | b25e59e2b2ee394a2a7e981b99cbd92ef6c8be85 (patch) | |
tree | 707e1439dc50eb846d807d2e6b088d50fe7130b9 /fs/btrfs/dev-replace.c | |
parent | 542c5908abfe84f7b4c1717492ecc92ea0ea328d (diff) |
btrfs: drop uuid_mutex in btrfs_dev_replace_finishing
btrfs_dev_replace_finishing updates devices (soruce and target) which
are within the btrfs_fs_devices::devices or withint the cloned seed
devices (btrfs_fs_devices::seed::devices), so we don't need the global
uuid_mutex.
The device replace context is also locked by its own locks.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/dev-replace.c')
-rw-r--r-- | fs/btrfs/dev-replace.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/fs/btrfs/dev-replace.c b/fs/btrfs/dev-replace.c index 89946285203d..e2ba0419297a 100644 --- a/fs/btrfs/dev-replace.c +++ b/fs/btrfs/dev-replace.c | |||
@@ -609,7 +609,6 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info, | |||
609 | ret = btrfs_commit_transaction(trans); | 609 | ret = btrfs_commit_transaction(trans); |
610 | WARN_ON(ret); | 610 | WARN_ON(ret); |
611 | 611 | ||
612 | mutex_lock(&uuid_mutex); | ||
613 | /* keep away write_all_supers() during the finishing procedure */ | 612 | /* keep away write_all_supers() during the finishing procedure */ |
614 | mutex_lock(&fs_info->fs_devices->device_list_mutex); | 613 | mutex_lock(&fs_info->fs_devices->device_list_mutex); |
615 | mutex_lock(&fs_info->chunk_mutex); | 614 | mutex_lock(&fs_info->chunk_mutex); |
@@ -636,7 +635,6 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info, | |||
636 | btrfs_dev_replace_write_unlock(dev_replace); | 635 | btrfs_dev_replace_write_unlock(dev_replace); |
637 | mutex_unlock(&fs_info->chunk_mutex); | 636 | mutex_unlock(&fs_info->chunk_mutex); |
638 | mutex_unlock(&fs_info->fs_devices->device_list_mutex); | 637 | mutex_unlock(&fs_info->fs_devices->device_list_mutex); |
639 | mutex_unlock(&uuid_mutex); | ||
640 | btrfs_rm_dev_replace_blocked(fs_info); | 638 | btrfs_rm_dev_replace_blocked(fs_info); |
641 | if (tgt_device) | 639 | if (tgt_device) |
642 | btrfs_destroy_dev_replace_tgtdev(fs_info, tgt_device); | 640 | btrfs_destroy_dev_replace_tgtdev(fs_info, tgt_device); |
@@ -687,7 +685,6 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info, | |||
687 | */ | 685 | */ |
688 | mutex_unlock(&fs_info->chunk_mutex); | 686 | mutex_unlock(&fs_info->chunk_mutex); |
689 | mutex_unlock(&fs_info->fs_devices->device_list_mutex); | 687 | mutex_unlock(&fs_info->fs_devices->device_list_mutex); |
690 | mutex_unlock(&uuid_mutex); | ||
691 | 688 | ||
692 | /* replace the sysfs entry */ | 689 | /* replace the sysfs entry */ |
693 | btrfs_sysfs_rm_device_link(fs_info->fs_devices, src_device); | 690 | btrfs_sysfs_rm_device_link(fs_info->fs_devices, src_device); |