]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit - contrib/groff/tmac/www.tmac
MFV r318942: 8166 zpool scrub thinks it repaired offline device
authorAndriy Gapon <avg@FreeBSD.org>
Fri, 26 May 2017 12:04:21 +0000 (12:04 +0000)
committerAndriy Gapon <avg@FreeBSD.org>
Fri, 26 May 2017 12:04:21 +0000 (12:04 +0000)
commita51eb0a964a6fc0323c388a8e21d6fa85c502936
tree8cdd8c6a0c88d61ea05974c8433781236dd9324f
parent2cd05c24730c6e326576a6a6ad4786853b23545e
parentf45d37d04e5c367834b0afb2299731e15754ce07
MFV r318942: 8166 zpool scrub thinks it repaired offline device

illumos/illumos-gate@2d2f193a21231a58c583466dc23ba71f1a25f424
https://github.com/illumos/illumos-gate/commit/2d2f193a21231a58c583466dc23ba71f1a25f424

https://www.illumos.org/issues/8166
  If we do a scrub while a leaf device is offline (via "zpool offline"),
  we will inadvertently clear the DTL (dirty time log) of the offline
  device, even though it is still damaged. When the device comes back
  online, we will incompletely resilver it, thinking that the scrub
  repaired blocks written before the scrub was started. The incomplete
  resilver can lead to data loss if there is a subsequent failure of a
  different leaf device.
  The fix is to never clear the DTL of offline devices. Note that if a
  device is onlined while a scrub is in progress, the scrub will be
  restarted.
  The problem can be worked around by running "zpool scrub" after
  "zpool online".
  See also https://github.com/zfsonlinux/zfs/issues/5806

Reviewed by: George Wilson george.wilson@delphix.com
Reviewed by: Brad Lewis <brad.lewis@delphix.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author: Matthew Ahrens <mahrens@delphix.com>
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c