Deleted Added
full compact
22c22
< * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
---
> * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
104d103
< int state;
137,146c136,160
< /*
< * If the vdev has already been marked as failing due to a
< * failed probe, then ignore any subsequent I/O errors, as the
< * DE will automatically fault the vdev on the first such
< * failure.
< */
< if (vd != NULL &&
< (!vdev_readable(vd) || !vdev_writeable(vd)) &&
< strcmp(subclass, FM_EREPORT_ZFS_PROBE_FAILURE) != 0)
< return;
---
> if (vd != NULL) {
> /*
> * If the vdev has already been marked as failing due
> * to a failed probe, then ignore any subsequent I/O
> * errors, as the DE will automatically fault the vdev
> * on the first such failure. This also catches cases
> * where vdev_remove_wanted is set and the device has
> * not yet been asynchronously placed into the REMOVED
> * state.
> */
> if (zio->io_vd == vd &&
> !vdev_accessible(vd, zio) &&
> strcmp(subclass, FM_EREPORT_ZFS_PROBE_FAILURE) != 0)
> return;
>
> /*
> * Ignore checksum errors for reads from DTL regions of
> * leaf vdevs.
> */
> if (zio->io_type == ZIO_TYPE_READ &&
> zio->io_error == ECKSUM &&
> vd->vdev_ops->vdev_op_leaf &&
> vdev_dtl_contains(vd, DTL_MISSING, zio->io_txg, 1))
> return;
> }
200,207d213
< * If we are importing a faulted pool, then we treat it like an open,
< * not an import. Otherwise, the DE will ignore all faults during
< * import, since the default behavior is to mark the devices as
< * persistently unavailable, not leave them in the faulted state.
< */
< state = spa->spa_import_faulted ? SPA_LOAD_OPEN : spa->spa_load_state;
<
< /*
213c219,220
< sbuf_printf(&sb, " %s=%d", FM_EREPORT_PAYLOAD_ZFS_POOL_CONTEXT, state);
---
> sbuf_printf(&sb, " %s=%d", FM_EREPORT_PAYLOAD_ZFS_POOL_CONTEXT,
> spa->spa_load_state);
230c237
< if (vd->vdev_path)
---
> if (vd->vdev_path != NULL)
233c240
< if (vd->vdev_devid)
---
> if (vd->vdev_devid != NULL)
235a243,245
> if (vd->vdev_fru != NULL)
> sbuf_printf(&sb, " %s=%s",
> FM_EREPORT_PAYLOAD_ZFS_VDEV_FRU, vd->vdev_fru);