|
@@ -465,7 +465,11 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,
|
|
|
* flush all outstanding I/O and inode extent mappings before the
|
|
|
* copy operation is declared as being finished
|
|
|
*/
|
|
|
- btrfs_start_delalloc_inodes(root, 0);
|
|
|
+ ret = btrfs_start_delalloc_inodes(root, 0);
|
|
|
+ if (ret) {
|
|
|
+ mutex_unlock(&dev_replace->lock_finishing_cancel_unmount);
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
btrfs_wait_ordered_extents(root, 0);
|
|
|
|
|
|
trans = btrfs_start_transaction(root, 0);
|