diff options
| author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2011-05-10 06:01:20 -0700 |
|---|---|---|
| committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2011-05-10 06:01:20 -0700 |
| commit | b2cc8bf6a562b0c924b45a09d8d8754403037810 (patch) | |
| tree | 13986a3a14245cf553ec356368cecb50e47727e5 /usr/src/cmd | |
| parent | 9230f57fd5dc4b0898a592a83cfa3f7b18b26718 (diff) | |
| download | illumos-joyent-b2cc8bf6a562b0c924b45a09d8d8754403037810.tar.gz | |
OS-406 dlmgmtd deadlock when shutting down large numbers of zones
Diffstat (limited to 'usr/src/cmd')
| -rw-r--r-- | usr/src/cmd/dladm/dladm.c | 6 | ||||
| -rw-r--r-- | usr/src/cmd/zoneadmd/vplat.c | 5 |
2 files changed, 6 insertions, 5 deletions
diff --git a/usr/src/cmd/dladm/dladm.c b/usr/src/cmd/dladm/dladm.c index c368a8c21b..cc9bd0097a 100644 --- a/usr/src/cmd/dladm/dladm.c +++ b/usr/src/cmd/dladm/dladm.c @@ -4754,6 +4754,12 @@ do_create_vnic(int argc, char *argv[], const char *use) if ((flags & DLADM_OPT_FORCE) != 0 && vid == 0) die("-f option can only be used with -v"); + /* + * If creating a transient VNIC for a zone, mark it in the kernel. + */ + if (strstr(propstr, "zone=") != NULL && !(flags & DLADM_OPT_PERSIST)) + flags |= DLADM_OPT_TRANSIENT; + if (mac_prefix_len != 0 && mac_addr_type != VNIC_MAC_ADDR_TYPE_RANDOM && mac_addr_type != VNIC_MAC_ADDR_TYPE_FIXED) usage(); diff --git a/usr/src/cmd/zoneadmd/vplat.c b/usr/src/cmd/zoneadmd/vplat.c index 54aa111bf3..d2b8c79964 100644 --- a/usr/src/cmd/zoneadmd/vplat.c +++ b/usr/src/cmd/zoneadmd/vplat.c @@ -5191,11 +5191,6 @@ vplat_teardown(zlog_t *zlogp, boolean_t unmount_cmd, boolean_t rebooting, } break; case ZS_EXCLUSIVE: - if (unconfigure_exclusive_network_interfaces(zlogp, - zoneid) != 0) { - zerror(zlogp, B_FALSE, "unable to unconfigure " - "network interfaces in zone"); - } status = dladm_zone_halt(dld_handle, zoneid); if (status != DLADM_STATUS_OK) { zerror(zlogp, B_FALSE, "unable to notify " |
