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 | |
| 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>
| -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); |
