summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorRyan Zezeski <rpz@joyent.com>2017-08-10 13:50:48 -0600
committerRyan Zezeski <rpz@joyent.com>2017-08-28 12:07:36 -0600
commitf5625fbbfc84b8b99f9f3a5d26f66119ceb1ba05 (patch)
tree9550b494292751e96f9de80c17344f4c95ed1fff /usr/src
parentfd84e971d4f4598fda8c1792bcc2375d42e82cad (diff)
downloadillumos-joyent-f5625fbbfc84b8b99f9f3a5d26f66119ceb1ba05.tar.gz
OS-6280 transient link remains in dlmgmtd cache file after zone halt
Reviewed by: Robert Mustacchi <rm@joyent.com> Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Approved by: Jerry Jelinek <jerry.jelinek@joyent.com>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/cmd/zoneadmd/vplat.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/usr/src/cmd/zoneadmd/vplat.c b/usr/src/cmd/zoneadmd/vplat.c
index 704641ae99..d67e8d824f 100644
--- a/usr/src/cmd/zoneadmd/vplat.c
+++ b/usr/src/cmd/zoneadmd/vplat.c
@@ -21,7 +21,7 @@
/*
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2016, Joyent Inc.
+ * Copyright 2017, Joyent Inc.
* Copyright (c) 2015, 2016 by Delphix. All rights reserved.
*/
@@ -83,6 +83,7 @@
#include <libdlpi.h>
#include <libdllink.h>
#include <libdlvlan.h>
+#include <libdlvnic.h>
#include <inet/tcp.h>
#include <arpa/inet.h>
@@ -5169,7 +5170,6 @@ delete_transient_vnics(zlog_t *zlogp, zoneid_t zoneid)
uint32_t link_flags;
datalink_class_t link_class;
char link_name[MAXLINKNAMELEN];
- vnic_ioc_delete_t ioc;
if (zone_list_datalink(zoneid, &num_links, NULL) != 0) {
zerror(zlogp, B_TRUE, "unable to determine "
@@ -5213,12 +5213,13 @@ delete_transient_vnics(zlog_t *zlogp, zoneid_t zoneid)
if (link_flags & DLADM_OPT_TRANSIENT) {
assert(link_class & DATALINK_CLASS_VNIC);
+ status = dladm_vnic_delete(dld_handle, link,
+ DLADM_OPT_ACTIVE);
- ioc.vd_vnic_id = link;
- if (ioctl(dladm_dld_fd(dld_handle), VNIC_IOC_DELETE,
- &ioc) < 0) {
- zerror(zlogp, B_TRUE,
- "delete VNIC ioctl failed %d", link);
+ if (status != DLADM_STATUS_OK) {
+ zerror(zlogp, B_TRUE, "failed to delete link "
+ "with id %d: %s", link,
+ dladm_status2str(status, dlerr));
return (-1);
}
}