Deleted Added
full compact
23a24
> * Copyright (c) 2011 by Delphix. All rights reserved.
214a216,220
> if (spa->spa_comment != NULL) {
> spa_prop_add_list(*nvp, ZPOOL_PROP_COMMENT, spa->spa_comment,
> 0, ZPROP_SRC_LOCAL);
> }
>
354c360
< char *slash;
---
> char *slash, *check;
473a480,499
> case ZPOOL_PROP_COMMENT:
> if ((error = nvpair_value_string(elem, &strval)) != 0)
> break;
> for (check = strval; *check != '\0'; check++) {
> /*
> * The kernel doesn't have an easy isprint()
> * check. For this kernel check, we merely
> * check ASCII apart from DEL. Fix this if
> * there is an easy-to-use kernel isprint().
> */
> if (*check >= 0x7f) {
> error = EINVAL;
> break;
> }
> check++;
> }
> if (strlen(strval) > ZPROP_MAX_COMMENT)
> error = E2BIG;
> break;
>
574a601,637
> * Change the GUID for the pool. This is done so that we can later
> * re-import a pool built from a clone of our own vdevs. We will modify
> * the root vdev's guid, our own pool guid, and then mark all of our
> * vdevs dirty. Note that we must make sure that all our vdevs are
> * online when we do this, or else any vdevs that weren't present
> * would be orphaned from our pool. We are also going to issue a
> * sysevent to update any watchers.
> */
> int
> spa_change_guid(spa_t *spa)
> {
> uint64_t oldguid, newguid;
> uint64_t txg;
>
> if (!(spa_mode_global & FWRITE))
> return (EROFS);
>
> txg = spa_vdev_enter(spa);
>
> if (spa->spa_root_vdev->vdev_state != VDEV_STATE_HEALTHY)
> return (spa_vdev_exit(spa, NULL, txg, ENXIO));
>
> oldguid = spa_guid(spa);
> newguid = spa_generate_guid(NULL);
> ASSERT3U(oldguid, !=, newguid);
>
> spa->spa_root_vdev->vdev_guid = newguid;
> spa->spa_root_vdev->vdev_guid_sum += (newguid - oldguid);
>
> vdev_config_dirty(spa->spa_root_vdev);
>
> spa_event_notify(spa, NULL, ESC_ZFS_POOL_REGUID);
>
> return (spa_vdev_exit(spa, NULL, txg, 0));
> }
>
> /*
1027a1091,1095
> if (spa->spa_comment != NULL) {
> spa_strfree(spa->spa_comment);
> spa->spa_comment = NULL;
> }
>
1744a1813
> char *comment;
1751a1821,1824
> ASSERT(spa->spa_comment == NULL);
> if (nvlist_lookup_string(config, ZPOOL_CONFIG_COMMENT, &comment) == 0)
> spa->spa_comment = spa_strdup(comment);
>
1767c1840
< spa->spa_load_guid = pool_guid;
---
> spa->spa_config_guid = pool_guid;
5382a5456,5469
> case ZPOOL_PROP_COMMENT:
> VERIFY(nvpair_value_string(elem, &strval) == 0);
> if (spa->spa_comment != NULL)
> spa_strfree(spa->spa_comment);
> spa->spa_comment = spa_strdup(strval);
> /*
> * We need to dirty the configuration on all the vdevs
> * so that their labels get updated. It's unnecessary
> * to do this for pool creation since the vdev's
> * configuratoin has already been dirtied.
> */
> if (tx->tx_txg != TXG_INITIAL)
> vdev_config_dirty(spa->spa_root_vdev);
> break;