Propagate vdev state due to invalid label corruption
Propagate vdev child state to parents on invalid label Add VDEV_AUX_BAD_LABEL to print_import_config() Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Mark Maybee <mark.maybee@delphix.com> Co-authored-by: Srikanth N S <srikanth.nagasubbaraoseetharaman@hpe.com> Signed-off-by: Vipin Kumar Verma <vipin.verma@hpe.com> Closes #12088
This commit is contained in:
parent
ab6717cba6
commit
d6bedbbc44
|
@ -32,6 +32,7 @@
|
||||||
* Copyright (c) 2017, Intel Corporation.
|
* Copyright (c) 2017, Intel Corporation.
|
||||||
* Copyright (c) 2019, loli10K <ezomori.nozomu@gmail.com>
|
* Copyright (c) 2019, loli10K <ezomori.nozomu@gmail.com>
|
||||||
* Copyright (c) 2021, Colm Buckley <colm@tuatha.org>
|
* Copyright (c) 2021, Colm Buckley <colm@tuatha.org>
|
||||||
|
* Copyright [2021] Hewlett Packard Enterprise Development LP
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
@ -2379,6 +2380,10 @@ print_status_config(zpool_handle_t *zhp, status_cbdata_t *cb, const char *name,
|
||||||
(void) printf(gettext("all children offline"));
|
(void) printf(gettext("all children offline"));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case VDEV_AUX_BAD_LABEL:
|
||||||
|
(void) printf(gettext("invalid label"));
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
(void) printf(gettext("corrupted data"));
|
(void) printf(gettext("corrupted data"));
|
||||||
break;
|
break;
|
||||||
|
@ -2521,6 +2526,10 @@ print_import_config(status_cbdata_t *cb, const char *name, nvlist_t *nv,
|
||||||
(void) printf(gettext("all children offline"));
|
(void) printf(gettext("all children offline"));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case VDEV_AUX_BAD_LABEL:
|
||||||
|
(void) printf(gettext("invalid label"));
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
(void) printf(gettext("corrupted data"));
|
(void) printf(gettext("corrupted data"));
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
* Copyright 2017 Joyent, Inc.
|
* Copyright 2017 Joyent, Inc.
|
||||||
* Copyright (c) 2017, Intel Corporation.
|
* Copyright (c) 2017, Intel Corporation.
|
||||||
* Copyright (c) 2019, Datto Inc. All rights reserved.
|
* Copyright (c) 2019, Datto Inc. All rights reserved.
|
||||||
|
* Copyright [2021] Hewlett Packard Enterprise Development LP
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/zfs_context.h>
|
#include <sys/zfs_context.h>
|
||||||
|
@ -2222,7 +2223,7 @@ vdev_validate(vdev_t *vd)
|
||||||
txg = spa_last_synced_txg(spa);
|
txg = spa_last_synced_txg(spa);
|
||||||
|
|
||||||
if ((label = vdev_label_read_config(vd, txg)) == NULL) {
|
if ((label = vdev_label_read_config(vd, txg)) == NULL) {
|
||||||
vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
|
vdev_set_state(vd, B_FALSE, VDEV_STATE_CANT_OPEN,
|
||||||
VDEV_AUX_BAD_LABEL);
|
VDEV_AUX_BAD_LABEL);
|
||||||
vdev_dbgmsg(vd, "vdev_validate: failed reading config for "
|
vdev_dbgmsg(vd, "vdev_validate: failed reading config for "
|
||||||
"txg %llu", (u_longlong_t)txg);
|
"txg %llu", (u_longlong_t)txg);
|
||||||
|
|
Loading…
Reference in New Issue