cvs commit: src/sys/ufs/ufs quota.h ufs_quota.c src/sys/ufs/ffs
ffs_vfsops.c
Konstantin Belousov
kib at FreeBSD.org
Wed Mar 14 08:54:08 UTC 2007
kib 2007-03-14 08:54:08 UTC
FreeBSD src repository
Modified files:
sys/ufs/ufs quota.h ufs_quota.c
sys/ufs/ffs ffs_vfsops.c
Log:
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.
Revision Changes Path
1.327 +0 -2 src/sys/ufs/ffs/ffs_vfsops.c
1.30 +24 -4 src/sys/ufs/ufs/quota.h
1.93 +469 -136 src/sys/ufs/ufs/ufs_quota.c
More information about the cvs-src
mailing list