summaryrefslogtreecommitdiffstats
path: root/sys/boot
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>2008-12-10 10:46:34 +0000
committerdfr <dfr@FreeBSD.org>2008-12-10 10:46:34 +0000
commit5319dab7a9493f7ff6e7fd10ea8eea2d00d16669 (patch)
treea0004219fbf6916669261a1f084c4ca3af01d03a /sys/boot
parent5c136f32ed16508d6aad90c4de48153890ff71dd (diff)
downloadFreeBSD-src-5319dab7a9493f7ff6e7fd10ea8eea2d00d16669.zip
FreeBSD-src-5319dab7a9493f7ff6e7fd10ea8eea2d00d16669.tar.gz
Don't get confused if we encounter a device which is part of a raidz or raidz2
pool while probing for vdevs. PR: 129539 Submitted by: Paul Wootton (paul at fletchermoorland dot co dot uk)
Diffstat (limited to 'sys/boot')
-rw-r--r--sys/boot/zfs/zfsimpl.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/boot/zfs/zfsimpl.c b/sys/boot/zfs/zfsimpl.c
index c7c4c65..a6dc99e 100644
--- a/sys/boot/zfs/zfsimpl.c
+++ b/sys/boot/zfs/zfsimpl.c
@@ -623,7 +623,7 @@ vdev_probe(vdev_read_t *read, void *read_priv, spa_t **spap)
uint64_t pool_txg, pool_guid;
const char *pool_name;
const unsigned char *vdevs;
- int i;
+ int i, rc;
char upbuf[1024];
const struct uberblock *up;
@@ -723,7 +723,9 @@ vdev_probe(vdev_read_t *read, void *read_priv, spa_t **spap)
DATA_TYPE_NVLIST, 0, &vdevs)) {
return (EIO);
}
- vdev_init_from_nvlist(vdevs, &top_vdev);
+ rc = vdev_init_from_nvlist(vdevs, &top_vdev);
+ if (rc)
+ return (rc);
/*
* Add the toplevel vdev to the pool if its not already there.
OpenPOWER on IntegriCloud