aboutsummaryrefslogtreecommitdiffstats
path: root/module
diff options
context:
space:
mode:
authorOlaf Faaland <[email protected]>2017-07-14 18:15:00 -0700
committerBrian Behlendorf <[email protected]>2017-07-25 13:22:28 -0400
commite889f0f520971fc2688189cdbe0efde2ccc8ec65 (patch)
treeb62817ae612329e2a6dedcc548fb73cf213b190d /module
parent0582e403221008480657a88e8f50aecc88397c80 (diff)
Report MMP_STATE_NO_HOSTID immediately
There is no need to perform the activity check before detecting that the user must set the system hostid, because the pool's multihost property is on, but spa_get_hostid() returned 0. The initial call to vdev_uberblock_load() provided the information required. Reviewed-by: Giuseppe Di Natale <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Olaf Faaland <[email protected]> Closes #6388
Diffstat (limited to 'module')
-rw-r--r--module/zfs/spa.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/module/zfs/spa.c b/module/zfs/spa.c
index f576293eb..f1f1444f1 100644
--- a/module/zfs/spa.c
+++ b/module/zfs/spa.c
@@ -2653,12 +2653,6 @@ spa_load_impl(spa_t *spa, uint64_t pool_guid, nvlist_t *config,
*/
activity_check = spa_activity_check_required(spa, ub, config);
if (activity_check) {
- error = spa_activity_check(spa, ub, config);
- if (error) {
- nvlist_free(label);
- return (error);
- }
-
if (ub->ub_mmp_magic == MMP_MAGIC && ub->ub_mmp_delay &&
spa_get_hostid() == 0) {
nvlist_free(label);
@@ -2667,6 +2661,12 @@ spa_load_impl(spa_t *spa, uint64_t pool_guid, nvlist_t *config,
return (spa_vdev_err(rvd, VDEV_AUX_ACTIVE, EREMOTEIO));
}
+ error = spa_activity_check(spa, ub, config);
+ if (error) {
+ nvlist_free(label);
+ return (error);
+ }
+
fnvlist_add_uint64(spa->spa_load_info,
ZPOOL_CONFIG_MMP_STATE, MMP_STATE_INACTIVE);
fnvlist_add_uint64(spa->spa_load_info,