Skip to content

Commit

Permalink
Illumos #4168, #4169, #4170
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reviewed by: Eric Schrock <[email protected]>
Reviewed by: Matthew Ahrens <[email protected]>
Approved by: Dan McDonald <[email protected]>

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

Ported-by: Richard Yao <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Issue #1775
  • Loading branch information
grwilson authored and behlendorf committed Nov 5, 2013
1 parent 92bc214 commit 43a696e
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion module/zfs/metaslab.c
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,11 @@ int metaslab_prefetch_limit = SPA_DVAS_PER_BP;
*/
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
Expand Down Expand Up @@ -1725,10 +1730,13 @@ metaslab_alloc_dva(spa_t *spa, metaslab_class_t *mc, uint64_t psize,

/*
* 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 ||
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;
goto next;
}
Expand Down

0 comments on commit 43a696e

Please sign in to comment.