diff options
author | pjd <pjd@FreeBSD.org> | 2011-10-19 23:37:30 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2011-10-19 23:37:30 +0000 |
commit | dca375324ce41ff5bc7fb41e30690e8b7b26a39f (patch) | |
tree | a949976e29c5043f8581690c390e6117ffc2cdb6 /sys/boot | |
parent | 5dc66f9eb55508ef869730ada9c605920bd64f3a (diff) | |
download | FreeBSD-src-dca375324ce41ff5bc7fb41e30690e8b7b26a39f.zip FreeBSD-src-dca375324ce41ff5bc7fb41e30690e8b7b26a39f.tar.gz |
Don't mark vdev as healthy too soon, so we won't try to use invalid vdevs.
MFC after: 3 days
Diffstat (limited to 'sys/boot')
-rw-r--r-- | sys/boot/zfs/zfsimpl.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/boot/zfs/zfsimpl.c b/sys/boot/zfs/zfsimpl.c index 497667a..3052db6 100644 --- a/sys/boot/zfs/zfsimpl.c +++ b/sys/boot/zfs/zfsimpl.c @@ -543,8 +543,6 @@ vdev_init_from_nvlist(const unsigned char *nvlist, vdev_t *pvdev, vdev->v_state = VDEV_STATE_DEGRADED; else if (isnt_present) vdev->v_state = VDEV_STATE_CANT_OPEN; - else - vdev->v_state = VDEV_STATE_HEALTHY; } rc = nvlist_find(nvlist, ZPOOL_CONFIG_CHILDREN, @@ -912,6 +910,7 @@ vdev_probe(vdev_phys_read_t *read, void *read_priv, spa_t **spap) if (vdev) { vdev->v_phys_read = read; vdev->v_read_priv = read_priv; + vdev->v_state = VDEV_STATE_HEALTHY; } else { printf("ZFS: inconsistent nvlist contents\n"); return (EIO); |