diff options
author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2012-08-06 14:48:25 +0000 |
---|---|---|
committer | Robert Mustacchi <rm@joyent.com> | 2014-12-12 08:23:21 -0800 |
commit | 5fd5c68917c02ae3dd752fac0ce9f7a10d02e94f (patch) | |
tree | 075b4a2ac18d6df4560be55059f3e33720debe95 /usr/src/uts/common/sys/zone.h | |
parent | de4ddf9cc252843f6f77e3bbadc864e98f79526e (diff) | |
download | illumos-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.h | 12 |
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 *); |