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,10 +20,11 @@
  */
 
 /*
  * 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,10 +68,11 @@
 #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,15 +90,16 @@
 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 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 *, ...);
@@ -110,12 +113,11 @@
         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
+        Z_EVT_ZONE_BOOTFAILED
 } zone_evt_t;
 
 extern int eventstream_init();
 extern void eventstream_write(zone_evt_t evt);
 
@@ -152,12 +154,25 @@
 /*
  * 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);
 
 /*