Print this page
OS-478 -- lint
OS-406
OS-327

@@ -3122,52 +3122,27 @@
                     "protection", NULL, 0, DLADM_OPT_ACTIVE);
                 if (dlstatus == DLADM_STATUS_NOTFOUND) {
                         /* datalink does not belong to the GZ */
                         continue;
                 }
-                if (dlstatus != DLADM_STATUS_OK) {
+                if (dlstatus != DLADM_STATUS_OK)
                         zerror(zlogp, B_FALSE,
+                            "clear 'protection' link property: %s",
                             dladm_status2str(dlstatus, dlerr));
-                        free(dllinks);
-                        return (-1);
-                }
+
                 dlstatus = dladm_set_linkprop(dld_handle, *dllink,
                     "allowed-ips", NULL, 0, DLADM_OPT_ACTIVE);
-                if (dlstatus != DLADM_STATUS_OK) {
+                if (dlstatus != DLADM_STATUS_OK)
                         zerror(zlogp, B_FALSE,
+                            "clear 'allowed-ips' link property: %s",
                             dladm_status2str(dlstatus, dlerr));
-                        free(dllinks);
-                        return (-1);
                 }
-        }
         free(dllinks);
         return (0);
 }
 
 static int
-unconfigure_exclusive_network_interfaces(zlog_t *zlogp, zoneid_t zoneid)
-{
-        int dlnum = 0;
-
-        /*
-         * The kernel shutdown callback for the dls module should have removed
-         * all datalinks from this zone.  If any remain, then there's a
-         * problem.
-         */
-        if (zone_list_datalink(zoneid, &dlnum, NULL) != 0) {
-                zerror(zlogp, B_TRUE, "unable to list network interfaces");
-                return (-1);
-        }
-        if (dlnum != 0) {
-                zerror(zlogp, B_FALSE,
-                    "datalinks remain in zone after shutdown");
-                return (-1);
-        }
-        return (0);
-}
-
-static int
 tcp_abort_conn(zlog_t *zlogp, zoneid_t zoneid,
     const struct sockaddr_storage *local, const struct sockaddr_storage *remote)
 {
         int fd;
         struct strioctl ioc;

@@ -5156,20 +5131,16 @@
                 if (unmount_cmd)
                         (void) lu_root_teardown(zlogp);
                 goto error;
         }
 
-        if (remove_datalink_pool(zlogp, zoneid) != 0) {
+        if (remove_datalink_pool(zlogp, zoneid) != 0)
                 zerror(zlogp, B_FALSE, "unable clear datalink pool property");
-                goto error;
-        }
 
-        if (remove_datalink_protect(zlogp, zoneid) != 0) {
+        if (remove_datalink_protect(zlogp, zoneid) != 0)
                 zerror(zlogp, B_FALSE,
                     "unable clear datalink protect property");
-                goto error;
-        }
 
         /*
          * The datalinks assigned to the zone will be removed from the NGZ as
          * part of zone_shutdown() so that we need to remove protect/pool etc.
          * before zone_shutdown(). Even if the shutdown itself fails, the zone

@@ -5237,16 +5208,10 @@
                                     "network interfaces in zone");
                                 goto error;
                         }
                         break;
                 case ZS_EXCLUSIVE:
-                        if (unconfigure_exclusive_network_interfaces(zlogp,
-                            zoneid) != 0) {
-                                zerror(zlogp, B_FALSE, "unable to unconfigure "
-                                    "network interfaces in zone");
-                                goto error;
-                        }
                         status = dladm_zone_halt(dld_handle, zoneid);
                         if (status != DLADM_STATUS_OK) {
                                 zerror(zlogp, B_FALSE, "unable to notify "
                                     "dlmgmtd of zone halt: %s",
                                     dladm_status2str(status, errmsg));