Deleted Added
full compact
spa.c (321529) spa.c (321540)
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE

--- 2722 unchanged lines hidden (view full) ---

2731 /* The sentinel is only available in the MOS config. */
2732 nvlist_t *mos_config;
2733 if (load_nvlist(spa, spa->spa_config_object, &mos_config) != 0)
2734 return (spa_vdev_err(rvd, VDEV_AUX_CORRUPT_DATA, EIO));
2735
2736 error = spa_dir_prop(spa, DMU_POOL_VDEV_ZAP_MAP,
2737 &spa->spa_all_vdev_zaps);
2738
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE

--- 2722 unchanged lines hidden (view full) ---

2731 /* The sentinel is only available in the MOS config. */
2732 nvlist_t *mos_config;
2733 if (load_nvlist(spa, spa->spa_config_object, &mos_config) != 0)
2734 return (spa_vdev_err(rvd, VDEV_AUX_CORRUPT_DATA, EIO));
2735
2736 error = spa_dir_prop(spa, DMU_POOL_VDEV_ZAP_MAP,
2737 &spa->spa_all_vdev_zaps);
2738
2739 if (error != ENOENT && error != 0) {
2739 if (error == ENOENT) {
2740 VERIFY(!nvlist_exists(mos_config,
2741 ZPOOL_CONFIG_HAS_PER_VDEV_ZAPS));
2742 spa->spa_avz_action = AVZ_ACTION_INITIALIZE;
2743 ASSERT0(vdev_count_verify_zaps(spa->spa_root_vdev));
2744 } else if (error != 0) {
2740 return (spa_vdev_err(rvd, VDEV_AUX_CORRUPT_DATA, EIO));
2745 return (spa_vdev_err(rvd, VDEV_AUX_CORRUPT_DATA, EIO));
2741 } else if (error == 0 && !nvlist_exists(mos_config,
2742 ZPOOL_CONFIG_HAS_PER_VDEV_ZAPS)) {
2746 } else if (!nvlist_exists(mos_config, ZPOOL_CONFIG_HAS_PER_VDEV_ZAPS)) {
2743 /*
2744 * An older version of ZFS overwrote the sentinel value, so
2745 * we have orphaned per-vdev ZAPs in the MOS. Defer their
2746 * destruction to later; see spa_sync_config_object.
2747 */
2748 spa->spa_avz_action = AVZ_ACTION_DESTROY;
2749 /*
2750 * We're assuming that no vdevs have had their ZAPs created

--- 3747 unchanged lines hidden (view full) ---

6498 */
6499 if (list_is_empty(&spa->spa_config_dirty_list) &&
6500 spa->spa_avz_action == AVZ_ACTION_NONE)
6501 return;
6502
6503 spa_config_enter(spa, SCL_STATE, FTAG, RW_READER);
6504
6505 ASSERT(spa->spa_avz_action == AVZ_ACTION_NONE ||
2747 /*
2748 * An older version of ZFS overwrote the sentinel value, so
2749 * we have orphaned per-vdev ZAPs in the MOS. Defer their
2750 * destruction to later; see spa_sync_config_object.
2751 */
2752 spa->spa_avz_action = AVZ_ACTION_DESTROY;
2753 /*
2754 * We're assuming that no vdevs have had their ZAPs created

--- 3747 unchanged lines hidden (view full) ---

6502 */
6503 if (list_is_empty(&spa->spa_config_dirty_list) &&
6504 spa->spa_avz_action == AVZ_ACTION_NONE)
6505 return;
6506
6507 spa_config_enter(spa, SCL_STATE, FTAG, RW_READER);
6508
6509 ASSERT(spa->spa_avz_action == AVZ_ACTION_NONE ||
6510 spa->spa_avz_action == AVZ_ACTION_INITIALIZE ||
6506 spa->spa_all_vdev_zaps != 0);
6507
6508 if (spa->spa_avz_action == AVZ_ACTION_REBUILD) {
6509 /* Make and build the new AVZ */
6510 uint64_t new_avz = zap_create(spa->spa_meta_objset,
6511 DMU_OTN_ZAP_METADATA, DMU_OT_NONE, 0, tx);
6512 spa_avz_build(spa->spa_root_vdev, new_avz, tx);
6513

--- 865 unchanged lines hidden ---
6511 spa->spa_all_vdev_zaps != 0);
6512
6513 if (spa->spa_avz_action == AVZ_ACTION_REBUILD) {
6514 /* Make and build the new AVZ */
6515 uint64_t new_avz = zap_create(spa->spa_meta_objset,
6516 DMU_OTN_ZAP_METADATA, DMU_OT_NONE, 0, tx);
6517 spa_avz_build(spa->spa_root_vdev, new_avz, tx);
6518

--- 865 unchanged lines hidden ---