MFC r271429:
Persist vdev_resilver_txg changes to avoid panic caused by validation vs a vdev_resilver_txg value from a previous resilver. Approved by: re (glebius) Sponsored by: Multiplay
This commit is contained in:
parent
45208196a6
commit
a0b52baaa8
@ -1951,12 +1951,15 @@ vdev_dtl_reassess(vdev_t *vd, uint64_t txg, uint64_t scrub_txg, int scrub_done)
|
||||
|
||||
/*
|
||||
* If the vdev was resilvering and no longer has any
|
||||
* DTLs then reset its resilvering flag.
|
||||
* DTLs then reset its resilvering flag and dirty
|
||||
* the top level so that we persist the change.
|
||||
*/
|
||||
if (vd->vdev_resilver_txg != 0 &&
|
||||
range_tree_space(vd->vdev_dtl[DTL_MISSING]) == 0 &&
|
||||
range_tree_space(vd->vdev_dtl[DTL_OUTAGE]) == 0)
|
||||
range_tree_space(vd->vdev_dtl[DTL_OUTAGE]) == 0) {
|
||||
vd->vdev_resilver_txg = 0;
|
||||
vdev_config_dirty(vd->vdev_top);
|
||||
}
|
||||
|
||||
mutex_exit(&vd->vdev_dtl_lock);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user