summaryrefslogtreecommitdiff
path: root/usr/src/cmd/zoneadmd/vplat.c
diff options
context:
space:
mode:
authorSteve Lawrence <Stephen.Lawrence@oracle.COM>2010-08-16 15:11:00 -0700
committerSteve Lawrence <Stephen.Lawrence@oracle.COM>2010-08-16 15:11:00 -0700
commitefd4c9b63ad77503c101fc6c2ed8ba96c9d52964 (patch)
treeb447d582518f8f0af64257eed46456346e3cd071 /usr/src/cmd/zoneadmd/vplat.c
parentf35eb4e637f5e925af3bb7993f3bb87c5a69a696 (diff)
downloadillumos-joyent-efd4c9b63ad77503c101fc6c2ed8ba96c9d52964.tar.gz
PSARC/2010/291 zonestat
6871288 integrate zones observability phase 1 6976077 zoneadmd dumps core after restart
Diffstat (limited to 'usr/src/cmd/zoneadmd/vplat.c')
-rw-r--r--usr/src/cmd/zoneadmd/vplat.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/usr/src/cmd/zoneadmd/vplat.c b/usr/src/cmd/zoneadmd/vplat.c
index 209c76d9fc..9e4dca604d 100644
--- a/usr/src/cmd/zoneadmd/vplat.c
+++ b/usr/src/cmd/zoneadmd/vplat.c
@@ -2471,6 +2471,7 @@ add_datalink(zlog_t *zlogp, char *zone_name, datalink_id_t linkid, char *dlname)
{
dladm_status_t err;
boolean_t cpuset, poolset;
+ char *poolp;
/* First check if it's in use by global zone. */
if (zonecfg_ifname_exists(AF_INET, dlname) ||
@@ -2508,8 +2509,9 @@ add_datalink(zlog_t *zlogp, char *zone_name, datalink_id_t linkid, char *dlname)
}
if ((strlen(pool_name) != 0) && !cpuset && !poolset) {
+ poolp = pool_name;
err = dladm_set_linkprop(dld_handle, linkid, "pool",
- &pool_name, 1, DLADM_OPT_ACTIVE);
+ &poolp, 1, DLADM_OPT_ACTIVE);
if (err != DLADM_STATUS_OK) {
zerror(zlogp, B_FALSE, "WARNING: unable to set "
"pool %s to datalink %s", pool_name, dlname);
@@ -4516,6 +4518,8 @@ setup_zone_rm(zlog_t *zlogp, char *zone_name, zoneid_t zoneid)
zerror(zlogp, B_FALSE, "WARNING: %s",
zonecfg_strerror(res));
}
+
+ /* Update saved pool name in case it has changed */
(void) zonecfg_get_poolname(handle, zone_name, pool_name, MAXPATHLEN);
zonecfg_fini_handle(handle);
@@ -4807,12 +4811,6 @@ vplat_create(zlog_t *zlogp, zone_mnt_t mount_cmd)
goto error;
}
- if ((pool_name = malloc(MAXPATHLEN)) == NULL) {
- zerror(zlogp, B_TRUE, "memory allocation failed");
- return (Z_NOMEM);
- }
- bzero(pool_name, MAXPATHLEN);
-
/*
* The following actions are not performed when merely mounting a zone
* for administrative use.
@@ -5278,8 +5276,6 @@ vplat_teardown(zlog_t *zlogp, boolean_t unmount_cmd, boolean_t rebooting)
}
}
- free(pool_name);
-
remove_mlps(zlogp, zoneid);
if (zone_destroy(zoneid) != 0) {