Deleted Added
full compact
zio.c (321529) zio.c (321532)
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE

--- 3288 unchanged lines hidden (view full) ---

3297 * If we can't write to an interior vdev (mirror or RAID-Z),
3298 * set vdev_cant_write so that we stop trying to allocate from it.
3299 */
3300 if (zio->io_error == ENXIO && zio->io_type == ZIO_TYPE_WRITE &&
3301 vd != NULL && !vd->vdev_ops->vdev_op_leaf) {
3302 vd->vdev_cant_write = B_TRUE;
3303 }
3304
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE

--- 3288 unchanged lines hidden (view full) ---

3297 * If we can't write to an interior vdev (mirror or RAID-Z),
3298 * set vdev_cant_write so that we stop trying to allocate from it.
3299 */
3300 if (zio->io_error == ENXIO && zio->io_type == ZIO_TYPE_WRITE &&
3301 vd != NULL && !vd->vdev_ops->vdev_op_leaf) {
3302 vd->vdev_cant_write = B_TRUE;
3303 }
3304
3305 /*
3306 * If a cache flush returns ENOTSUP or ENOTTY, we know that no future
3307 * attempts will ever succeed. In this case we set a persistent bit so
3308 * that we don't bother with it in the future.
3309 */
3310 if ((zio->io_error == ENOTSUP || zio->io_error == ENOTTY) &&
3311 zio->io_type == ZIO_TYPE_IOCTL &&
3312 zio->io_cmd == DKIOCFLUSHWRITECACHE && vd != NULL)
3313 vd->vdev_nowritecache = B_TRUE;
3314
3305 if (zio->io_error)
3306 zio->io_pipeline = ZIO_INTERLOCK_PIPELINE;
3307
3308 if (vd != NULL && vd->vdev_ops->vdev_op_leaf &&
3309 zio->io_physdone != NULL) {
3310 ASSERT(!(zio->io_flags & ZIO_FLAG_DELEGATED));
3311 ASSERT(zio->io_child_type == ZIO_CHILD_VDEV);
3312 zio->io_physdone(zio->io_logical);

--- 737 unchanged lines hidden ---
3315 if (zio->io_error)
3316 zio->io_pipeline = ZIO_INTERLOCK_PIPELINE;
3317
3318 if (vd != NULL && vd->vdev_ops->vdev_op_leaf &&
3319 zio->io_physdone != NULL) {
3320 ASSERT(!(zio->io_flags & ZIO_FLAG_DELEGATED));
3321 ASSERT(zio->io_child_type == ZIO_CHILD_VDEV);
3322 zio->io_physdone(zio->io_logical);

--- 737 unchanged lines hidden ---