Print this page
OS-5330 zoneadm mounting an lx or joyent branded zone fails
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Approved by: Jerry Jelinek <jerry.jelinek@joyent.com>
(NOTE: Manual port, because of divergence from SmartOS.)
OS-2564 zone boot failed: could not start zoneadmd
OS-3524 in order to support interaction with docker containers, need to be able to connect to stdio for init from GZ
OS-3525 in order to support 'docker logs' need to be able to get stdio from zone to log file
OS-3075 zone long boot args aren't passed through
OS-11 rcapd behaves poorly when under extreme load
        
*** 20,29 ****
--- 20,30 ----
   */
  
  /*
   * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
   * Copyright 2014 Nexenta Systems, Inc. All rights reserved.
+  * Copyright 2016 Joyent, Inc.
   */
  
  #ifndef _ZONEADMD_H
  #define _ZONEADMD_H
  
*** 67,76 ****
--- 68,78 ----
  #define DEFAULT_DIR_MODE \
          (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)
  #define DEFAULT_DIR_USER -1     /* user ID for chown: -1 means don't change */
  #define DEFAULT_DIR_GROUP -1    /* grp ID for chown: -1 means don't change */
  
+ #define ALT_MOUNT(mount_cmd)    ((mount_cmd) != Z_MNT_BOOT)
  
  typedef struct zlog {
          FILE *logfile;  /* file to log to */
  
          /*
*** 88,102 ****
  extern mutex_t lock;
  extern mutex_t msglock;
  extern boolean_t in_death_throes;
  extern boolean_t bringup_failure_recovery;
  extern char *zone_name;
  extern char pool_name[MAXNAMELEN];
  extern char brand_name[MAXNAMELEN];
  extern char default_brand[MAXNAMELEN];
  extern char boot_args[BOOTARGS_MAX];
- extern char bad_boot_arg[BOOTARGS_MAX];
  extern boolean_t zone_isnative;
  extern boolean_t zone_iscluster;
  extern dladm_handle_t dld_handle;
  
  extern void zerror(zlog_t *, boolean_t, const char *, ...);
--- 90,105 ----
  extern mutex_t lock;
  extern mutex_t msglock;
  extern boolean_t in_death_throes;
  extern boolean_t bringup_failure_recovery;
  extern char *zone_name;
+ extern char zonepath[MAXNAMELEN];
+ extern zone_dochandle_t snap_hndl;
  extern char pool_name[MAXNAMELEN];
  extern char brand_name[MAXNAMELEN];
  extern char default_brand[MAXNAMELEN];
  extern char boot_args[BOOTARGS_MAX];
  extern boolean_t zone_isnative;
  extern boolean_t zone_iscluster;
  extern dladm_handle_t dld_handle;
  
  extern void zerror(zlog_t *, boolean_t, const char *, ...);
*** 110,121 ****
          Z_EVT_ZONE_BOOTING,
          Z_EVT_ZONE_REBOOTING,
          Z_EVT_ZONE_HALTED,
          Z_EVT_ZONE_READIED,
          Z_EVT_ZONE_UNINSTALLING,
!         Z_EVT_ZONE_BOOTFAILED,
!         Z_EVT_ZONE_BADARGS
  } zone_evt_t;
  
  extern int eventstream_init();
  extern void eventstream_write(zone_evt_t evt);
  
--- 113,123 ----
          Z_EVT_ZONE_BOOTING,
          Z_EVT_ZONE_REBOOTING,
          Z_EVT_ZONE_HALTED,
          Z_EVT_ZONE_READIED,
          Z_EVT_ZONE_UNINSTALLING,
!         Z_EVT_ZONE_BOOTFAILED
  } zone_evt_t;
  
  extern int eventstream_init();
  extern void eventstream_write(zone_evt_t evt);
  
*** 152,163 ****
--- 154,178 ----
  /*
   * Console subsystem routines.
   */
  extern int init_console(zlog_t *);
  extern void serve_console(zlog_t *);
+ extern void zcons_statechanged();
  
  /*
+  * Memory capping thread creation.
+  */
+ extern void create_mcap_thread(zlog_t *, zoneid_t);
+ extern void destroy_mcap_thread();
+ 
+ /*
+  * Zone FD log thread creation.
+  */
+ extern void create_log_thread(zlog_t *, zoneid_t);
+ extern void destroy_log_thread();
+ 
+ /*
   * Contract handling.
   */
  extern int init_template(void);
  
  /*