]> granicus.if.org Git - zfs/commitdiff
Illumos 5438 - zfs_blkptr_verify should continue after zfs_panic_recover
authorJustin Gibbs <gibbs@scsiguy.com>
Sat, 9 Jan 2016 17:29:05 +0000 (18:29 +0100)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 12 Jan 2016 21:54:05 +0000 (13:54 -0800)
5438 zfs_blkptr_verify should continue after zfs_panic_recover
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: George Wilson <george@delphix.com>
Reviewed by: Xin LI <delphij@freebsd.org>
Approved by: Dan McDonald <danmcd@omniti.com>

References:
  https://www.illumos.org/issues/5438
  https://github.com/illumos/illumos-gate/commit/5897eb4

Ported-by: kernelOfTruth kerneloftruth@gmail.com
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
module/zfs/zio.c

index 9da7916e5b077637a7080f22b20fbbad4ba85a54..2d16e632de06108607b27888219a28973fd43163 100644 (file)
@@ -679,18 +679,20 @@ zfs_blkptr_verify(spa_t *spa, const blkptr_t *bp)
                        zfs_panic_recover("blkptr at %p DVA %u has invalid "
                            "VDEV %llu",
                            bp, i, (longlong_t)vdevid);
+                       continue;
                }
                vd = spa->spa_root_vdev->vdev_child[vdevid];
                if (vd == NULL) {
                        zfs_panic_recover("blkptr at %p DVA %u has invalid "
                            "VDEV %llu",
                            bp, i, (longlong_t)vdevid);
+                       continue;
                }
                if (vd->vdev_ops == &vdev_hole_ops) {
                        zfs_panic_recover("blkptr at %p DVA %u has hole "
                            "VDEV %llu",
                            bp, i, (longlong_t)vdevid);
-
+                       continue;
                }
                if (vd->vdev_ops == &vdev_missing_ops) {
                        /*