Lines Matching refs:spa_spares

1293 	for (i = 0; i < spa->spa_spares.sav_count; i++)
1294 vdev_free(spa->spa_spares.sav_vdevs[i]);
1295 if (spa->spa_spares.sav_vdevs) {
1296 kmem_free(spa->spa_spares.sav_vdevs,
1297 spa->spa_spares.sav_count * sizeof (void *));
1298 spa->spa_spares.sav_vdevs = NULL;
1300 if (spa->spa_spares.sav_config) {
1301 nvlist_free(spa->spa_spares.sav_config);
1302 spa->spa_spares.sav_config = NULL;
1304 spa->spa_spares.sav_count = 0;
1334 * 'spa_spares.sav_config'. We parse this into vdevs, try to open them, and
1350 for (i = 0; i < spa->spa_spares.sav_count; i++) {
1351 vd = spa->spa_spares.sav_vdevs[i];
1361 if (spa->spa_spares.sav_vdevs)
1362 kmem_free(spa->spa_spares.sav_vdevs,
1363 spa->spa_spares.sav_count * sizeof (void *));
1365 if (spa->spa_spares.sav_config == NULL)
1368 VERIFY(nvlist_lookup_nvlist_array(spa->spa_spares.sav_config,
1371 spa->spa_spares.sav_count = (int)nspares;
1372 spa->spa_spares.sav_vdevs = NULL;
1386 spa->spa_spares.sav_vdevs = kmem_alloc(nspares * sizeof (void *),
1388 for (i = 0; i < spa->spa_spares.sav_count; i++) {
1393 spa->spa_spares.sav_vdevs[i] = vd;
1418 vd->vdev_aux = &spa->spa_spares;
1431 VERIFY(nvlist_remove(spa->spa_spares.sav_config, ZPOOL_CONFIG_SPARES,
1434 spares = kmem_alloc(spa->spa_spares.sav_count * sizeof (void *),
1436 for (i = 0; i < spa->spa_spares.sav_count; i++)
1438 spa->spa_spares.sav_vdevs[i], B_TRUE, VDEV_CONFIG_SPARE);
1439 VERIFY(nvlist_add_nvlist_array(spa->spa_spares.sav_config,
1440 ZPOOL_CONFIG_SPARES, spares, spa->spa_spares.sav_count) == 0);
1441 for (i = 0; i < spa->spa_spares.sav_count; i++)
1443 kmem_free(spares, spa->spa_spares.sav_count * sizeof (void *));
2687 error = spa_dir_prop(spa, DMU_POOL_SPARES, &spa->spa_spares.sav_object);
2692 if (load_nvlist(spa, spa->spa_spares.sav_object,
2693 &spa->spa_spares.sav_config) != 0)
2700 spa->spa_spares.sav_sync = B_TRUE;
2758 spa_aux_check_removed(&spa->spa_spares);
3216 if (spa->spa_spares.sav_count == 0)
3221 VERIFY(nvlist_lookup_nvlist_array(spa->spa_spares.sav_config,
3508 &spa->spa_spares, ZPOOL_CONFIG_SPARES, SPA_VERSION_SPARES,
3697 VERIFY(nvlist_alloc(&spa->spa_spares.sav_config, NV_UNIQUE_NAME,
3699 VERIFY(nvlist_add_nvlist_array(spa->spa_spares.sav_config,
3704 spa->spa_spares.sav_sync = B_TRUE;
4128 if (spa->spa_spares.sav_config) {
4129 nvlist_free(spa->spa_spares.sav_config);
4130 spa->spa_spares.sav_config = NULL;
4169 if (spa->spa_spares.sav_config)
4170 VERIFY(nvlist_remove(spa->spa_spares.sav_config,
4173 VERIFY(nvlist_alloc(&spa->spa_spares.sav_config,
4175 VERIFY(nvlist_add_nvlist_array(spa->spa_spares.sav_config,
4180 spa->spa_spares.sav_sync = B_TRUE;
4202 spa_aux_check_removed(&spa->spa_spares);
4535 spa_set_aux_vdevs(&spa->spa_spares, spares, nspares,
4538 spa->spa_spares.sav_sync = B_TRUE;
5475 if (spa->spa_spares.sav_vdevs != NULL &&
5476 nvlist_lookup_nvlist_array(spa->spa_spares.sav_config,
5487 spa_vdev_remove_aux(spa->spa_spares.sav_config,
5490 spa->spa_spares.sav_sync = B_TRUE;
5889 for (int i = 0; i < spa->spa_spares.sav_count; i++)
5890 spa_async_remove(spa, spa->spa_spares.sav_vdevs[i]);
6611 spa_sync_aux_dev(spa, &spa->spa_spares, tx,
6871 for (i = 0; i < spa->spa_spares.sav_count; i++) {
6872 vd = spa->spa_spares.sav_vdevs[i];
6909 spa_aux_vdev_t *sav = &spa->spa_spares;
6933 spa_aux_vdev_t *sav = &spa->spa_spares;