From owner-cvs-all@FreeBSD.ORG Wed Mar 14 08:54:08 2007 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9D61716A401; Wed, 14 Mar 2007 08:54:08 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 926C213C448; Wed, 14 Mar 2007 08:54:08 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l2E8s8FU067852; Wed, 14 Mar 2007 08:54:08 GMT (envelope-from kib@repoman.freebsd.org) Received: (from kib@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l2E8s8n2067851; Wed, 14 Mar 2007 08:54:08 GMT (envelope-from kib) Message-Id: <200703140854.l2E8s8n2067851@repoman.freebsd.org> From: Konstantin Belousov Date: Wed, 14 Mar 2007 08:54:08 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/ufs/ufs quota.h ufs_quota.c src/sys/ufs/ffs ffs_vfsops.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Mar 2007 08:54:08 -0000 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