zfs/include/sys
Brian Behlendorf d2733258d0 Condition variable reference counts
Reference count every entry and exit from the condition variable
functions: cv_wait(), cv_wait_timeout(), cv_signal(), cv_broadcast().

This allows us to safely block in cv_destroy() until all consumers
have been scheduled and are no longer accessing the condition
variable memory.

In addition poison the magic value at the start of cv_destroy() to
ensure there are never any new callers after cv_destroy() is called.
The consumer is responsible for ensuring this never occurs.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2012-11-06 14:48:55 -08:00
..
fm Remove autotools products 2012-08-27 11:46:23 -07:00
fs Remove autotools products 2012-08-27 11:46:23 -07:00
sysevent Remove autotools products 2012-08-27 11:46:23 -07:00
acl.h Add VSA_ACE_* and MAX_ACL_ENTRIES defines 2011-01-27 16:06:09 -08:00
acl_impl.h Public Release Prep 2010-05-17 15:18:00 -07:00
atomic.h atomic_*_*_nv() functions need to return the new value atomically. 2010-09-17 16:03:25 -07:00
attr.h Public Release Prep 2010-05-17 15:18:00 -07:00
bitmap.h Public Release Prep 2010-05-17 15:18:00 -07:00
bootconf.h Public Release Prep 2010-05-17 15:18:00 -07:00
bootprops.h Stub out additional missing headers 2010-06-11 15:57:25 -07:00
buf.h Public Release Prep 2010-05-17 15:18:00 -07:00
byteorder.h Public Release Prep 2010-05-17 15:18:00 -07:00
callb.h Public Release Prep 2010-05-17 15:18:00 -07:00
cmn_err.h Public Release Prep 2010-05-17 15:18:00 -07:00
compress.h Public Release Prep 2010-05-17 15:18:00 -07:00
condvar.h Condition variable reference counts 2012-11-06 14:48:55 -08:00
conf.h Public Release Prep 2010-05-17 15:18:00 -07:00
console.h Public Release Prep 2010-05-17 15:18:00 -07:00
cpupart.h Stub out additional missing headers 2010-06-11 15:57:25 -07:00
cpuvar.h Public Release Prep 2010-05-17 15:18:00 -07:00
crc32.h Public Release Prep 2010-05-17 15:18:00 -07:00
cred.h Add crgetfsuid()/crgetfsgid() helpers 2011-03-22 12:18:44 -07:00
ctype.h Public Release Prep 2010-05-17 15:18:00 -07:00
ddi.h Public Release Prep 2010-05-17 15:18:00 -07:00
debug.h Add --enable-debug-log configure option 2012-02-02 11:27:54 -08:00
dirent.h Public Release Prep 2010-05-17 15:18:00 -07:00
disp.h Add kpreempt_[dis|en]able macros in <sys/disp.h> 2012-08-24 15:18:38 -07:00
dkio.h Add DKIOCTRIM for TRIM support. 2012-09-02 14:22:01 -07:00
dklabel.h Public Release Prep 2010-05-17 15:18:00 -07:00
dnlc.h Add dnlc_reduce_cache() support 2011-04-06 20:06:03 -07:00
dumphdr.h Public Release Prep 2010-05-17 15:18:00 -07:00
efi_partition.h Public Release Prep 2010-05-17 15:18:00 -07:00
errno.h Public Release Prep 2010-05-17 15:18:00 -07:00
extdirent.h Add missing headers 2011-01-27 16:06:09 -08:00
fcntl.h Use Linux flock struct 2011-02-23 14:32:15 -08:00
file.h Add FIGNORECASE define 2011-01-27 16:06:09 -08:00
idmap.h Add missing headers 2011-01-27 16:06:09 -08:00
int_limits.h Public Release Prep 2010-05-17 15:18:00 -07:00
int_types.h Public Release Prep 2010-05-17 15:18:00 -07:00
inttypes.h Public Release Prep 2010-05-17 15:18:00 -07:00
isa_defs.h Define the needed ISA types for ARM 2012-05-03 09:56:15 -07:00
kidmap.h Add missing headers 2011-01-27 16:06:09 -08:00
kmem.h Add KMC_NOEMERGENCY slab flag 2012-09-07 14:27:03 -07:00
kobj.h Public Release Prep 2010-05-17 15:18:00 -07:00
kstat.h Add KSTAT_TYPE_TXG type 2012-11-02 15:17:40 -07:00
list.h Add list_link_replace() function 2010-08-27 14:23:48 -07:00
mkdev.h Public Release Prep 2010-05-17 15:18:00 -07:00
mntent.h Public Release Prep 2010-05-17 15:18:00 -07:00
modctl.h Public Release Prep 2010-05-17 15:18:00 -07:00
mode.h Add vn_mode_to_vtype/vn_vtype to_mode helpers 2011-01-12 11:38:04 -08:00
mount.h Public Release Prep 2010-05-17 15:18:00 -07:00
mutex.h Mutex ASSERT on self deadlock 2012-08-27 12:00:55 -07:00
note.h Public Release Prep 2010-05-17 15:18:00 -07:00
open.h Public Release Prep 2010-05-17 15:18:00 -07:00
param.h Correct MAXUID 2011-04-29 13:58:45 -07:00
pathname.h Public Release Prep 2010-05-17 15:18:00 -07:00
policy.h Minor policy interface 2011-01-27 16:06:09 -08:00
pool.h Stub out additional missing headers 2010-06-11 15:57:25 -07:00
priv_impl.h Stub out additional missing headers 2010-06-11 15:57:25 -07:00
proc.h Cleanly split Linux proc.h (fs) from conflicting Solaris proc.h (process) 2010-06-11 15:57:25 -07:00
processor.h Public Release Prep 2010-05-17 15:18:00 -07:00
pset.h Stub out additional missing headers 2010-06-11 15:57:25 -07:00
random.h Public Release Prep 2010-05-17 15:18:00 -07:00
refstr.h Public Release Prep 2010-05-17 15:18:00 -07:00
resource.h Public Release Prep 2010-05-17 15:18:00 -07:00
rwlock.h Linux 3.2 compat: rw_semaphore.wait_lock is raw 2012-01-11 16:28:05 -08:00
sdt.h Public Release Prep 2010-05-17 15:18:00 -07:00
sid.h Add ksid_index_t and ksid_t types 2011-01-27 16:06:09 -08:00
signal.h Split <sys/debug.h> header 2010-07-20 13:29:35 -07:00
stat.h Public Release Prep 2010-05-17 15:18:00 -07:00
stropts.h Public Release Prep 2010-05-17 15:18:00 -07:00
sunddi.h Remove Solaris module emulation 2012-05-18 13:57:44 -07:00
sunldi.h Public Release Prep 2010-05-17 15:18:00 -07:00
sysdc.h Stub out additional missing headers 2010-06-11 15:57:25 -07:00
sysevent.h Public Release Prep 2010-05-17 15:18:00 -07:00
sysmacros.h PowerPC Compatibility 2012-07-02 09:33:09 -07:00
systeminfo.h Read the /etc/hostid file directly. 2011-06-24 09:58:03 -07:00
systm.h Public Release Prep 2010-05-17 15:18:00 -07:00
t_lock.h Public Release Prep 2010-05-17 15:18:00 -07:00
taskq.h Remove TQ_SLEEP -> KM_SLEEP mapping 2012-09-12 11:41:42 -07:00
thread.h PowerPC Compatibility 2012-07-02 09:33:09 -07:00
time.h Allow 64-bit timestamps to be set on 64-bit kernels 2011-12-12 11:06:03 -08:00
timer.h Minor cleanup and Solaris API additions. 2010-06-11 15:57:25 -07:00
tsd.h Prepend spl_ to all init/fini functions 2011-11-11 09:18:28 -08:00
types.h Linux 2.6.39 compat, zlib_deflate_workspacesize() 2011-04-20 14:39:15 -07:00
types32.h Public Release Prep 2010-05-17 15:18:00 -07:00
u8_textprep.h Public Release Prep 2010-05-17 15:18:00 -07:00
uio.h Add xuio_* structures and typedefs. 2010-06-11 15:57:25 -07:00
unistd.h Public Release Prep 2010-05-17 15:18:00 -07:00
utsname.h Public Release Prep 2010-05-17 15:18:00 -07:00
va_list.h Public Release Prep 2010-05-17 15:18:00 -07:00
varargs.h Public Release Prep 2010-05-17 15:18:00 -07:00
vfs.h Renamed 'struct fid' for NFS 2011-04-29 12:10:54 -07:00
vfs_opreg.h Public Release Prep 2010-05-17 15:18:00 -07:00
vmsystm.h Public Release Prep 2010-05-17 15:18:00 -07:00
vnode.h Add interface for file hole punching. 2012-10-04 16:22:07 -07:00
zmod.h Prepend spl_ to all init/fini functions 2011-11-11 09:18:28 -08:00
zone.h Public Release Prep 2010-05-17 15:18:00 -07:00