Print this page
        
*** 124,134 ****
          }
          (void) dlmgmt_set_doorfd(B_FALSE);
          dlmgmt_door_fd = -1;
  }
  
! static int
  dlmgmt_door_attach(zoneid_t zoneid, char *rootdir)
  {
          int     fd;
          int     err = 0;
          char    doorpath[MAXPATHLEN];
--- 124,134 ----
          }
          (void) dlmgmt_set_doorfd(B_FALSE);
          dlmgmt_door_fd = -1;
  }
  
! int
  dlmgmt_door_attach(zoneid_t zoneid, char *rootdir)
  {
          int     fd;
          int     err = 0;
          char    doorpath[MAXPATHLEN];
*** 230,240 ****
   * Initialize each running zone.
   */
  static int
  dlmgmt_allzones_init(void)
  {
!         int             i;
          zoneid_t        *zids = NULL;
          uint_t          nzids, nzids_saved;
  
          if (zone_list(NULL, &nzids) != 0)
                  return (errno);
--- 230,240 ----
   * Initialize each running zone.
   */
  static int
  dlmgmt_allzones_init(void)
  {
!         int             err, i;
          zoneid_t        *zids = NULL;
          uint_t          nzids, nzids_saved;
  
          if (zone_list(NULL, &nzids) != 0)
                  return (errno);
*** 251,291 ****
                  free(zids);
                  goto again;
          }
  
          for (i = 0; i < nzids; i++) {
!                 int res;
!                 zone_status_t status;
! 
!                 /*
!                  * Skip over zones that have gone away or are going down
!                  * since we got the list.  Process all zones in the list,
!                  * logging errors for any that failed.
!                  */
!                 if (zone_getattr(zids[i], ZONE_ATTR_STATUS, &status,
!                     sizeof (status)) < 0)
!                         continue;
!                 switch (status) {
!                         case ZONE_IS_SHUTTING_DOWN:
!                         case ZONE_IS_EMPTY:
!                         case ZONE_IS_DOWN:
!                         case ZONE_IS_DYING:
!                         case ZONE_IS_DEAD:
!                                 /* FALLTHRU */
!                                 continue;
!                         default:
                                  break;
                  }
-                 if ((res = dlmgmt_zone_init(zids[i])) != 0) {
-                         (void) fprintf(stderr, "zone (%ld) init error %s",
-                             zids[i], strerror(res));
-                         dlmgmt_log(LOG_ERR, "zone (%d) init error %s",
-                             zids[i], strerror(res));
-                 }
-         }
          free(zids);
!         return (0);
  }
  
  static int
  dlmgmt_init(void)
  {
--- 251,265 ----
                  free(zids);
                  goto again;
          }
  
          for (i = 0; i < nzids; i++) {
!                 if ((err = dlmgmt_zone_init(zids[i])) != 0)
                          break;
          }
          free(zids);
!         return (err);
  }
  
  static int
  dlmgmt_init(void)
  {