4168 ztest assertion failure in dbuf_undirty
4169 verbatim import causes zdb to segfault
4170 zhack leaves pool in ACTIVE state
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: Eric Schrock <eric.schrock@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Approved by: Dan McDonald <danmcd@nexenta.com>

References:
  https://www.illumos.org/issues/4168
  https://www.illumos.org/issues/4169
  https://www.illumos.org/issues/4170
  illumos/illumos-gate@7fdd916c47

Ported-by: Richard Yao <ryao@gentoo.org>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #1775
This commit is contained in:
George Wilson 2013-10-04 14:13:23 -08:00 committed by Brian Behlendorf
parent 92bc214c2e
commit 43a696ed38

View File

@ -117,6 +117,11 @@ int metaslab_prefetch_limit = SPA_DVAS_PER_BP;
*/ */
int metaslab_smo_bonus_pct = 150; int metaslab_smo_bonus_pct = 150;
/*
* Should we be willing to write data to degraded vdevs?
*/
boolean_t zfs_write_to_degraded = B_FALSE;
/* /*
* ========================================================================== * ==========================================================================
* Metaslab classes * Metaslab classes
@ -1725,10 +1730,13 @@ top:
/* /*
* Avoid writing single-copy data to a failing vdev * Avoid writing single-copy data to a failing vdev
* unless the user instructs us that it is okay.
*/ */
if ((vd->vdev_stat.vs_write_errors > 0 || if ((vd->vdev_stat.vs_write_errors > 0 ||
vd->vdev_state < VDEV_STATE_HEALTHY) && vd->vdev_state < VDEV_STATE_HEALTHY) &&
d == 0 && dshift == 3) { d == 0 && dshift == 3 &&
!(zfs_write_to_degraded && vd->vdev_state ==
VDEV_STATE_DEGRADED)) {
all_zero = B_FALSE; all_zero = B_FALSE;
goto next; goto next;
} }