Print this page
6659 nvlist_free(NULL) is a no-op


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 {