btrfs: dev-replace: replace's scrub must not be running in suspended state
When the replace state is in the suspended state, btrfs_scrub_cancel() should fail with -ENOTCONN as there is no scrub running. As a safety catch check if btrfs_scrub_cancel() returns -ENOTCONN and assert if it doesn't. Signed-off-by: Anand Jain <anand.jain@oracle.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
b47dda2ef6
commit
fe97e2e173
|
@ -840,7 +840,9 @@ int btrfs_dev_replace_cancel(struct btrfs_fs_info *fs_info)
|
||||||
|
|
||||||
btrfs_dev_replace_write_unlock(dev_replace);
|
btrfs_dev_replace_write_unlock(dev_replace);
|
||||||
|
|
||||||
btrfs_scrub_cancel(fs_info);
|
/* Scrub for replace must not be running in suspended state */
|
||||||
|
ret = btrfs_scrub_cancel(fs_info);
|
||||||
|
ASSERT(ret != -ENOTCONN);
|
||||||
|
|
||||||
trans = btrfs_start_transaction(root, 0);
|
trans = btrfs_start_transaction(root, 0);
|
||||||
if (IS_ERR(trans)) {
|
if (IS_ERR(trans)) {
|
||||||
|
|
Loading…
Reference in New Issue