Print this page
dlmgt mismerge (continued)
OS-3342 dlmgmtd needs to be mindful of lock ordering
OS-2608 dlmgmtd needs to record zone identifiers
OS-3492 zone_free asserts to its destruction when dlmgmtd has fallen
OS-3494 zoneadmd tears down networking too soon when boot fails
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>

@@ -65,10 +65,11 @@
         avl_node_t              ll_name_node;
         avl_node_t              ll_id_node;
         avl_node_t              ll_loan_node;
         uint32_t                ll_flags;
         uint32_t                ll_gen;         /* generation number */
+        boolean_t               ll_tomb;        /* tombstombed */
 } dlmgmt_link_t;
 
 /*
  * datalink configuration request structure
  */

@@ -82,10 +83,12 @@
         zoneid_t                ld_zoneid;
         uint32_t                ld_gen;
         avl_node_t              ld_node;
 } dlmgmt_dlconf_t;
 
+#define ZONE_LOCK       "/etc/dladm/zone.lck"
+
 extern boolean_t        debug;
 extern const char       *progname;
 extern char             cachefile[];
 extern dladm_handle_t   dld_handle;
 extern datalink_id_t    dlmgmt_nextlinkid;

@@ -136,11 +139,11 @@
 int             dlmgmt_drop_privileges();
 void            dlmgmt_handler(void *, char *, size_t, door_desc_t *, uint_t);
 void            dlmgmt_log(int, const char *, ...);
 int             dlmgmt_write_db_entry(const char *, dlmgmt_link_t *, uint32_t);
 int             dlmgmt_delete_db_entry(dlmgmt_link_t *, uint32_t);
-int             dlmgmt_db_init(zoneid_t);
+int             dlmgmt_db_init(zoneid_t, char *);
 void            dlmgmt_db_fini(zoneid_t);
 
 #ifdef  __cplusplus
 }
 #endif