]> granicus.if.org Git - zfs/commitdiff
Illumos #3517
authorYuri Pankov <yuri.pankov@nexenta.com>
Thu, 7 Mar 2013 01:57:09 +0000 (17:57 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 31 Oct 2013 21:57:59 +0000 (14:57 -0700)
3517 importing pool with autoreplace=on and "hole" vdevs crashes syseventd
Reviewed by: Albert Lee <trisk@nexenta.com>
Reviewed by: Jeffry Molanus <jeffry.molanus@nexenta.com>
Reviewed by: George Wilson <gwilson@zfsmail.com>
Approved by: Christopher Siden <christopher.siden@delphix.com>

References:
  https://www.illumos.org/issues/3517
  illumos/illumos-gate@efb4a871d8fd510a833bdca610528dde5ed69e42

Ported-by: Richard Yao <ryao@gentoo.org>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #1775

module/zfs/spa.c

index b400896c296986dcb6893319b4d9c747d50df221..76daaf62747b9f34309139d50f3a3c38cdebd599 100644 (file)
@@ -21,8 +21,8 @@
 
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
  * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright 2013 Nexenta Systems, Inc. All rights reserved.
  */
 
 /*
@@ -1597,7 +1597,8 @@ spa_check_removed(vdev_t *vd)
        for (c = 0; c < vd->vdev_children; c++)
                spa_check_removed(vd->vdev_child[c]);
 
-       if (vd->vdev_ops->vdev_op_leaf && vdev_is_dead(vd)) {
+       if (vd->vdev_ops->vdev_op_leaf && vdev_is_dead(vd) &&
+           !vd->vdev_ishole) {
                zfs_ereport_post(FM_EREPORT_RESOURCE_AUTOREPLACE,
                    vd->vdev_spa, vd, NULL, 0, 0);
                spa_event_notify(vd->vdev_spa, vd, FM_EREPORT_ZFS_DEVICE_CHECK);