vdev_open: clear async remove flag after reopen

It's possible for a vdev to be flagged for async remove after the pool
has suspended. If the removed device has been returned when the pool is
resumed, the ASYNC_REMOVE task will still run at the end of txg, and
remove the device from the pool again.

To fix, we clear the async remove flag at reopen, just as we did for the
async fault flag in 5de3ac223.

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Alexander Motin <[email protected]>
Signed-off-by: Rob Norris <[email protected]>
Closes #16921
This commit is contained in:
Rob Norris authored and GitHub committed 2025-01-03 14:42:06 -08:00
1 parent e94549d868
commit c02e1cf055
1 file changed
+1
+1
View File
@@ -2041,6 +2041,7 @@ vdev_open(vdev_t *vd)
vd->vdev_cant_read = B_FALSE;
vd->vdev_cant_write = B_FALSE;
vd->vdev_fault_wanted = B_FALSE;
vd->vdev_remove_wanted = B_FALSE;
vd->vdev_min_asize = vdev_get_min_asize(vd);
/*