1265 free(slice->rn_name);
1266 free(slice);
1267 }
1268 avl_destroy(&slice_cache);
1269
1270 (void) closedir(dirp);
1271
1272 if (config_failed)
1273 goto error;
1274 }
1275
1276 ret = get_configs(hdl, &pools, iarg->can_be_active);
1277
1278 error:
1279 for (pe = pools.pools; pe != NULL; pe = penext) {
1280 penext = pe->pe_next;
1281 for (ve = pe->pe_vdevs; ve != NULL; ve = venext) {
1282 venext = ve->ve_next;
1283 for (ce = ve->ve_configs; ce != NULL; ce = cenext) {
1284 cenext = ce->ce_next;
1285 if (ce->ce_config)
1286 nvlist_free(ce->ce_config);
1287 free(ce);
1288 }
1289 free(ve);
1290 }
1291 free(pe);
1292 }
1293
1294 for (ne = pools.names; ne != NULL; ne = nenext) {
1295 nenext = ne->ne_next;
1296 free(ne->ne_name);
1297 free(ne);
1298 }
1299
1300 return (ret);
1301 }
1302
1303 nvlist_t *
1304 zpool_find_import(libzfs_handle_t *hdl, int argc, char **argv)
1305 {
|
1265 free(slice->rn_name);
1266 free(slice);
1267 }
1268 avl_destroy(&slice_cache);
1269
1270 (void) closedir(dirp);
1271
1272 if (config_failed)
1273 goto error;
1274 }
1275
1276 ret = get_configs(hdl, &pools, iarg->can_be_active);
1277
1278 error:
1279 for (pe = pools.pools; pe != NULL; pe = penext) {
1280 penext = pe->pe_next;
1281 for (ve = pe->pe_vdevs; ve != NULL; ve = venext) {
1282 venext = ve->ve_next;
1283 for (ce = ve->ve_configs; ce != NULL; ce = cenext) {
1284 cenext = ce->ce_next;
1285 nvlist_free(ce->ce_config);
1286 free(ce);
1287 }
1288 free(ve);
1289 }
1290 free(pe);
1291 }
1292
1293 for (ne = pools.names; ne != NULL; ne = nenext) {
1294 nenext = ne->ne_next;
1295 free(ne->ne_name);
1296 free(ne);
1297 }
1298
1299 return (ret);
1300 }
1301
1302 nvlist_t *
1303 zpool_find_import(libzfs_handle_t *hdl, int argc, char **argv)
1304 {
|