freebsd-nq/sys
Konstantin Belousov 088ffd2086 Implement fine-grained locking for UFS quotas.
Each struct dquot gets dq_lock mutex to protect dq_flags and to interlock
with DQ_LOCK. qhash, dqfreelist and dq.dq_cnt are protected by global
dqhlock mutex.

i_dquot array for inode is protected by lockmgr' vnode lock, corresponding
assert added to the dqget(). Access to struct ufsmount quota-related fields
(um_quotas and um_qflags) is protected by um_lock.

Tested by:	Peter Holm
Reviewed by:	tegge
Approved by:	re (kensmith)

This work were not possible without enormous amount of help given by
Tor Egge and Peter Holm. Tor reviewed each version of patch, pointed out
numerous errors and provided invaluable suggestions. Peter did tireless
testing of the patch as it was developed.
2007-03-14 08:54:08 +00:00
..
amd64 Add another CPUID for AMD CPUs and fix style(9) while I am here. 2007-03-12 20:27:21 +00:00
arm Push down the implementation of PCPU_LAZY_INC() into the machine-dependent 2007-03-11 05:54:29 +00:00
boot MFi386: revision 1.17. 2007-03-04 04:53:17 +00:00
bsm Merge OpenBSM 1.0 alpha 12 import changes into src/sys/bsm. New events 2006-09-25 12:22:07 +00:00
cam Use tsleep() rather than msleep() with a NULL mtx. 2007-02-27 17:15:39 +00:00
coda Make insmntque() externally visibile and allow it to fail (e.g. during 2007-03-13 01:50:27 +00:00
compat Add a pn_destroy field to pfs_node. This field points to a destructor 2007-03-12 12:16:52 +00:00
conf Add support for statically compiling cxgb into the kernel 2007-03-14 06:57:26 +00:00
contrib - Add Intel firmwares for Intel PRO/Wireless LAN 2100/2200/2915 cards in a 2007-03-02 11:42:56 +00:00
crypto Initialize T1 to silent gcc warning. 2006-10-22 02:19:33 +00:00
ddb Use FOREACH_PROC_IN_SYSTEM instead of using its unrolled form. 2007-01-17 15:05:52 +00:00
dev play it safe for now and go back to kicking off tx cleaning from the tx path 2007-03-14 07:57:59 +00:00
fs Make insmntque() externally visibile and allow it to fail (e.g. during 2007-03-13 01:50:27 +00:00
gdb
geom Warn when user use sectorsize bigger than the page size, which will lead 2007-03-05 12:41:44 +00:00
gnu Make insmntque() externally visibile and allow it to fail (e.g. during 2007-03-13 01:50:27 +00:00
i4b o break newbus api: add a new argument of type driver_filter_t to 2007-02-24 02:28:07 +00:00
i386 Add another CPUID for AMD CPUs and fix style(9) while I am here. 2007-03-12 20:27:21 +00:00
ia64 Push down the implementation of PCPU_LAZY_INC() into the machine-dependent 2007-03-11 05:54:29 +00:00
isa Partial fix for a bug in rev.1.231. If suspend/resume clobbers the 2007-03-05 09:10:17 +00:00
kern Busy filesystem around call of VFS_QUOTACTL() vfs op. 2007-03-14 08:45:55 +00:00
libkern Add strstr() function to the libkern. 2006-08-12 15:28:39 +00:00
modules no-op cxgb_config.h for the module compilation case 2007-03-14 06:41:34 +00:00
net Emit load and unload messages under bootverbose. 2007-03-12 12:42:14 +00:00
net80211 change ic_modecaps to a bit vector and use setbit, et. al. 2007-03-11 22:37:32 +00:00
netatalk Use privilege PRIV_NET_ADDIFADDR rather than suser() to authorize 2007-02-19 22:40:02 +00:00
netatm Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
netgraph oops committed the wrong patch. 2007-03-10 01:02:40 +00:00
netinet Fix IP_SENDSRCADDR semantics. 2007-03-08 15:26:54 +00:00
netinet6 Add comments about common idioms for cleanup pass at a later date. 2007-02-28 21:58:37 +00:00
netipsec s,#if INET6,#ifdef INET6, 2006-12-14 17:33:46 +00:00
netipx Build ipx_ip.c only if options IPXIP is defined. No functional change. 2007-02-26 11:55:34 +00:00
netkey With exception of the if_name() macro, all definitions in net_osdep.h 2006-08-04 21:27:40 +00:00
netnatm Factor out my copyrights + licenses from Charles D. Cranor and 2007-01-08 22:30:39 +00:00
netncp Use pause() rather than tsleep() on stack variables and function pointers. 2007-02-27 17:23:29 +00:00
netsmb Backing out the wrong fix which could possibly trash the memory if devfs 2007-02-09 17:22:10 +00:00
nfs NFSv4 client: 2006-11-28 19:33:28 +00:00
nfs4client Rename some functions and variables from nfs_* to nfs4_* to avoid 2007-01-25 14:33:13 +00:00
nfsclient Make insmntque() externally visibile and allow it to fail (e.g. during 2007-03-13 01:50:27 +00:00
nfsserver Change these descriptions of memory types used in malloc(9), as their 2007-03-05 00:21:40 +00:00
opencrypto
pc98 - Use mtx_{lock,unlock}_spin rather than {disable,enable}_intr. 2007-03-04 11:36:16 +00:00
pccard
pci Add new ST201 PCI id. 2007-03-10 03:10:34 +00:00
powerpc Push down the implementation of PCPU_LAZY_INC() into the machine-dependent 2007-03-11 05:54:29 +00:00
rpc
security Remove 'MPSAFE' annotations from the comments above most system calls: all 2007-03-04 22:36:48 +00:00
sparc64 Push down the implementation of PCPU_LAZY_INC() into the machine-dependent 2007-03-11 05:54:29 +00:00
sun4v Push down the implementation of PCPU_LAZY_INC() into the machine-dependent 2007-03-11 05:54:29 +00:00
sys Make insmntque() externally visibile and allow it to fail (e.g. during 2007-03-13 01:50:27 +00:00
tools - Add Intel firmwares for Intel PRO/Wireless LAN 2100/2200/2915 cards in a 2007-03-02 11:42:56 +00:00
ufs Implement fine-grained locking for UFS quotas. 2007-03-14 08:54:08 +00:00
vm Use PCPU_LAZY_INC() to update page fault statistics. 2007-03-05 18:55:14 +00:00
Makefile o Add cam to a list of cscope dirs. 2006-11-26 18:27:16 +00:00