Print this page
OS-208 DTrace needs to use zone_did to match zone-limited enablings
OS-192 zone_create() warning on headnode

@@ -115,10 +115,11 @@
 #define ZONE_ATTR_HOSTID        15
 #define ZONE_ATTR_FS_ALLOWED    16
 #define ZONE_ATTR_NETWORK       17
 #define ZONE_ATTR_INITNORESTART 20
 #define ZONE_ATTR_SECFLAGS      21
+#define ZONE_ATTR_DID           22
 
 /* Start of the brand-specific attribute namespace */
 #define ZONE_ATTR_BRAND_ATTRS   32768
 
 #define ZONE_FS_ALLOWED_MAX     1024

@@ -195,10 +196,11 @@
         size32_t  zfsbufsz;
         int match;                      /* match level */
         uint32_t doi;                   /* DOI for label */
         caddr32_t label;                /* label associated with zone */
         int flags;
+        zoneid_t zone_did;              /* zone debug ID */
 } zone_def32;
 #endif
 typedef struct {
         const char *zone_name;
         const char *zone_root;

@@ -211,10 +213,11 @@
         size_t zfsbufsz;
         int match;                      /* match level */
         uint32_t doi;                   /* DOI for label */
         const bslabel_t *label;         /* label associated with zone */
         int flags;
+        zoneid_t zone_did;              /* zone debug ID */
 } zone_def;
 
 /* extended error information */
 #define ZE_UNKNOWN      0       /* No extended error info */
 #define ZE_CHROOTED     1       /* tried to zone_create from chroot */

@@ -460,10 +463,11 @@
          * zone_linkage is the zone's linkage into the active or
          * death-row list.  The field is protected by zonehash_lock.
          */
         list_node_t     zone_linkage;
         zoneid_t        zone_id;        /* ID of zone */
+        zoneid_t        zone_did;       /* persistent debug ID of zone */
         uint_t          zone_ref;       /* count of zone_hold()s on zone */
         uint_t          zone_cred_ref;  /* count of zone_hold_cred()s on zone */
         /*
          * Fixed-sized array of subsystem-specific reference counts
          * The sum of all of the counts must be less than or equal to zone_ref.

@@ -662,10 +666,11 @@
 extern zone_t *zone_find_by_label(const ts_label_t *);
 extern zone_t *zone_find_by_name(char *);
 extern zone_t *zone_find_by_any_path(const char *, boolean_t);
 extern zone_t *zone_find_by_path(const char *);
 extern zoneid_t getzoneid(void);
+extern zoneid_t getzonedid(void);
 extern zone_t *zone_find_by_id_nolock(zoneid_t);
 extern int zone_datalink_walk(zoneid_t, int (*)(datalink_id_t, void *), void *);
 extern int zone_check_datalink(zoneid_t *, datalink_id_t);
 extern void zone_loadavg_update();