]> granicus.if.org Git - zfs/commitdiff
Illumos 5049 - panic when removing log device
authorAlex Reece <alex@delphix.com>
Thu, 4 Sep 2014 23:08:28 +0000 (16:08 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 5 Sep 2014 16:06:27 +0000 (09:06 -0700)
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Mattew Ahrens <mahrens@delphix.com>
Reviewed by: Paul Dagnelie <paul.dagnelie@delphix.com>
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Reviewed by: Saso Kiselkov <skiselkov@gmail.com>
Approved by: Rich Lowe <richlowe@richlowe.net>

References:
  https://www.illumos.org/issues/5049
  https://github.com/illumos/illumos-gate/commit/2986efa

Ported-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #2636

module/zfs/vdev.c

index 0303edada37b819ca0619a3c4c6aa25294173063..7c689b3c882d5e3c9a47d889968fa1eea4269228 100644 (file)
@@ -2655,8 +2655,9 @@ vdev_get_stats(vdev_t *vd, vdev_stat_t *vs)
        if (vd->vdev_ops->vdev_op_leaf)
                vs->vs_rsize += VDEV_LABEL_START_SIZE + VDEV_LABEL_END_SIZE;
        vs->vs_esize = vd->vdev_max_asize - vd->vdev_asize;
-       if (vd->vdev_aux == NULL && vd == vd->vdev_top)
+       if (vd->vdev_aux == NULL && vd == vd->vdev_top && !vd->vdev_ishole) {
                vs->vs_fragmentation = vd->vdev_mg->mg_fragmentation;
+       }
 
        /*
         * If we're getting stats on the root vdev, aggregate the I/O counts