summaryrefslogtreecommitdiffstats
path: root/cddl/contrib/opensolaris/cmd/zpool
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>2011-07-18 03:00:59 +0000
committergibbs <gibbs@FreeBSD.org>2011-07-18 03:00:59 +0000
commitda7ee096965f766e81ea6f096dec8c067eba301e (patch)
tree97719ff6d34db2b829827483a4de542fe8c2c88b /cddl/contrib/opensolaris/cmd/zpool
parent122ada4e73084e51013b07a37b42b2bd1862ada7 (diff)
downloadFreeBSD-src-da7ee096965f766e81ea6f096dec8c067eba301e.zip
FreeBSD-src-da7ee096965f766e81ea6f096dec8c067eba301e.tar.gz
Correct reporting of missing leaf vdevs so that the GUID required to
perform pool actions is always displayed. cddl/contrib/opensolaris/cmd/zpool/zpool_main.c: The "zpool status" command reports the "last seen at" device node path when the vdev name is being reported by GUID. Augment this code to assume a GUID is reported when a device goes missing after initial boot in addition to the previous behavior of doing this for devices that aren't seen at boot. cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c: In zpool_vdev_name(), report recently missing devices by GUID. There is no guarantee they will return at their previous location.
Diffstat (limited to 'cddl/contrib/opensolaris/cmd/zpool')
-rw-r--r--cddl/contrib/opensolaris/cmd/zpool/zpool_main.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c b/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
index 5e63bcd..4a3c8cc 100644
--- a/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
+++ b/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
@@ -1084,10 +1084,11 @@ print_status_config(zpool_handle_t *zhp, const char *name, nvlist_t *nv,
}
if (nvlist_lookup_uint64(nv, ZPOOL_CONFIG_NOT_PRESENT,
- &notpresent) == 0) {
+ &notpresent) == 0 ||
+ vs->vs_state <= VDEV_STATE_CANT_OPEN) {
char *path;
- verify(nvlist_lookup_string(nv, ZPOOL_CONFIG_PATH, &path) == 0);
- (void) printf(" was %s", path);
+ if (nvlist_lookup_string(nv, ZPOOL_CONFIG_PATH, &path) == 0)
+ (void) printf(" was %s", path);
} else if (vs->vs_aux != 0) {
(void) printf(" ");
OpenPOWER on IntegriCloud