summaryrefslogtreecommitdiffstats
path: root/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
index 741a60b..55bf229 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
@@ -735,20 +735,12 @@ vdev_geom_io_intr(struct bio *bp)
*/
vd->vdev_notrim = B_TRUE;
}
- if (zio->io_error == EIO && !vd->vdev_remove_wanted) {
+ if (zio->io_error == ENXIO && !vd->vdev_remove_wanted) {
/*
* If provider's error is set we assume it is being
* removed.
*/
if (bp->bio_to->error != 0) {
- /*
- * We post the resource as soon as possible, instead of
- * when the async removal actually happens, because the
- * DE is using this information to discard previous I/O
- * errors.
- */
- /* XXX: zfs_post_remove() can sleep. */
- zfs_post_remove(zio->io_spa, vd);
vd->vdev_remove_wanted = B_TRUE;
spa_async_request(zio->io_spa, SPA_ASYNC_REMOVE);
} else if (!vd->vdev_delayed_close) {
OpenPOWER on IntegriCloud