mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-10-28 19:34:43 +01:00
vdev: skip faulting disks pending removal
This patch fixes a race where vdev_remove_wanted may be set after probe initiation, which could otherwise trigger redundant fault and removal. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Alexander Motin <[email protected]> Reviewed-by: Tony Hutter <[email protected]> Signed-off-by: Ameer Hamza <[email protected]> Closes #17400
This commit is contained in:
1 parent
1d482ca6e3
commit
b3b3cd1e4f
1 file changed
+4
-1
+4
-1
@@ -1772,8 +1772,11 @@ vdev_probe_done(zio_t *zio)
|
||||
* change the state in a spa_async_request. Probes that
|
||||
* were initiated from a vdev_open can change the state
|
||||
* as part of the open call.
|
||||
* Skip fault injection if this vdev is already removed
|
||||
* or a removal is pending.
|
||||
*/
|
||||
if (vps->vps_zio_done_probe) {
|
||||
if (vps->vps_zio_done_probe &&
|
||||
!vd->vdev_remove_wanted && !vd->vdev_removed) {
|
||||
vd->vdev_fault_wanted = B_TRUE;
|
||||
spa_async_request(spa, SPA_ASYNC_FAULT_VDEV);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user