diff options
author | Lin Ling <Lin.Ling@Sun.COM> | 2009-07-15 23:11:56 -0700 |
---|---|---|
committer | Lin Ling <Lin.Ling@Sun.COM> | 2009-07-15 23:11:56 -0700 |
commit | bc758434fd3df659cb5caf3de6b1e90d9b23ee79 (patch) | |
tree | 08a33fcf3d686d92f29ceadce146c3df9c7d9a07 /usr/src/uts/common/fs/zfs/vdev.c | |
parent | 8e326937258295218b5a1f9a63fa6bb760376bbe (diff) | |
download | illumos-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.c | 14 |
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); /* |