diff options
author | Ryan Zezeski <rpz@joyent.com> | 2017-08-10 13:50:48 -0600 |
---|---|---|
committer | Ryan Zezeski <rpz@joyent.com> | 2017-08-28 12:07:36 -0600 |
commit | f5625fbbfc84b8b99f9f3a5d26f66119ceb1ba05 (patch) | |
tree | 9550b494292751e96f9de80c17344f4c95ed1fff /usr/src | |
parent | fd84e971d4f4598fda8c1792bcc2375d42e82cad (diff) | |
download | illumos-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.c | 15 |
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); } } |