summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/zfs/vdev.c
diff options
context:
space:
mode:
authorLin Ling <Lin.Ling@Sun.COM>2009-07-15 23:11:56 -0700
committerLin Ling <Lin.Ling@Sun.COM>2009-07-15 23:11:56 -0700
commitbc758434fd3df659cb5caf3de6b1e90d9b23ee79 (patch)
tree08a33fcf3d686d92f29ceadce146c3df9c7d9a07 /usr/src/uts/common/fs/zfs/vdev.c
parent8e326937258295218b5a1f9a63fa6bb760376bbe (diff)
downloadillumos-gate-bc758434fd3df659cb5caf3de6b1e90d9b23ee79.tar.gz
6856634 snv_117 not booting: zfs_parse_bootfs: error2
Diffstat (limited to 'usr/src/uts/common/fs/zfs/vdev.c')
-rw-r--r--usr/src/uts/common/fs/zfs/vdev.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/usr/src/uts/common/fs/zfs/vdev.c b/usr/src/uts/common/fs/zfs/vdev.c
index 6408713a7e..4a44a603f0 100644
--- a/usr/src/uts/common/fs/zfs/vdev.c
+++ b/usr/src/uts/common/fs/zfs/vdev.c
@@ -1187,7 +1187,6 @@ vdev_validate(vdev_t *vd)
nvlist_t *label;
uint64_t guid, top_guid;
uint64_t state;
- boolean_t inactive_state;
for (int c = 0; c < vd->vdev_children; c++)
if (vdev_validate(vd->vdev_child[c]) != 0)
@@ -1244,12 +1243,13 @@ vdev_validate(vdev_t *vd)
nvlist_free(label);
- inactive_state = (state == POOL_STATE_EXPORTED ||
- state == POOL_STATE_DESTROYED);
-
- if (spa->spa_load_state == SPA_LOAD_OPEN &&
- !(state == POOL_STATE_ACTIVE) &&
- !(spa->spa_inactive_states_ok && inactive_state))
+ /*
+ * If spa->spa_load_verbatim is true, no need to check the
+ * state of the pool.
+ */
+ if (!spa->spa_load_verbatim &&
+ spa->spa_load_state == SPA_LOAD_OPEN &&
+ state != POOL_STATE_ACTIVE)
return (EBADF);
/*