summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys/zone.h
diff options
context:
space:
mode:
authorJerry Jelinek <jerry.jelinek@joyent.com>2012-08-06 14:48:25 +0000
committerRobert Mustacchi <rm@joyent.com>2014-12-12 08:23:21 -0800
commit5fd5c68917c02ae3dd752fac0ce9f7a10d02e94f (patch)
tree075b4a2ac18d6df4560be55059f3e33720debe95 /usr/src/uts/common/sys/zone.h
parentde4ddf9cc252843f6f77e3bbadc864e98f79526e (diff)
downloadillumos-gate-5fd5c68917c02ae3dd752fac0ce9f7a10d02e94f.tar.gz
5419 hung mount in one zone shouldn't interfere with zone boot/halt of another zone
Reviewed by: Robert Mustacchi <rm@joyent.com> Reviewed by: Garrett D'Amore <garrett@damore.org> Approved by: Dan McDonald <danmcd@omniti.com>
Diffstat (limited to 'usr/src/uts/common/sys/zone.h')
-rw-r--r--usr/src/uts/common/sys/zone.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/usr/src/uts/common/sys/zone.h b/usr/src/uts/common/sys/zone.h
index 7e567c0cdb..7aab7c8d32 100644
--- a/usr/src/uts/common/sys/zone.h
+++ b/usr/src/uts/common/sys/zone.h
@@ -600,6 +600,14 @@ typedef struct zone {
* DTrace-private per-zone state
*/
int zone_dtrace_getf; /* # of unprivileged getf()s */
+
+ /*
+ * Synchronization primitives used to synchronize between mounts and
+ * zone creation/destruction.
+ */
+ int zone_mounts_in_progress;
+ kcondvar_t zone_mount_cv;
+ kmutex_t zone_mount_lock;
} zone_t;
/*
@@ -819,8 +827,8 @@ extern int zone_dataset_visible(const char *, int *);
extern int zone_kadmin(int, int, const char *, cred_t *);
extern void zone_shutdown_global(void);
-extern void mount_in_progress(void);
-extern void mount_completed(void);
+extern void mount_in_progress(zone_t *);
+extern void mount_completed(zone_t *);
extern int zone_walk(int (*)(zone_t *, void *), void *);