From owner-cvs-src@FreeBSD.ORG Sat Mar 22 09:15:16 2008 Return-Path: Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E6F4C106564A; Sat, 22 Mar 2008 09:15:16 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id F2FCF8FC1C; Sat, 22 Mar 2008 09:15:16 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m2M9FGd3051783; Sat, 22 Mar 2008 09:15:16 GMT (envelope-from jeff@repoman.freebsd.org) Received: (from jeff@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m2M9FG8b051782; Sat, 22 Mar 2008 09:15:16 GMT (envelope-from jeff) Message-Id: <200803220915.m2M9FG8b051782@repoman.freebsd.org> From: Jeff Roberson Date: Sat, 22 Mar 2008 09:15:16 +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/fs/msdosfs msdosfs_vfsops.c src/sys/kern vfs_bio.c vfs_cluster.c vfs_default.c vfs_subr.c src/sys/nfs4client nfs4_vfsops.c nfs4_vnops.c src/sys/nfsclient nfs_subs.c nfs_vfsops.c nfs_vnops.c src/sys/nfsserver nfs_serv.c ... X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Mar 2008 09:15:17 -0000 jeff 2008-03-22 09:15:16 UTC FreeBSD src repository Modified files: sys/fs/msdosfs msdosfs_vfsops.c sys/kern vfs_bio.c vfs_cluster.c vfs_default.c vfs_subr.c sys/nfs4client nfs4_vfsops.c nfs4_vnops.c sys/nfsclient nfs_subs.c nfs_vfsops.c nfs_vnops.c sys/nfsserver nfs_serv.c sys/sys buf.h bufobj.h sys/ufs/ffs ffs_inode.c ffs_rawread.c ffs_softdep.c ffs_vfsops.c ffs_vnops.c Log: - Complete part of the unfinished bufobj work by consistently using BO_LOCK/UNLOCK/MTX when manipulating the bufobj. - Create a new lock in the bufobj to lock bufobj fields independently. This leaves the vnode interlock as an 'identity' lock while the bufobj is an io lock. The bufobj lock is ordered before the vnode interlock and also before the mnt ilock. - Exploit this new lock order to simplify softdep_check_suspend(). - A few sync related functions are marked with a new XXX to note that we may not properly interlock against a non-zero bv_cnt when attempting to sync all vnodes on a mountlist. I do not believe this race is important. If I'm wrong this will make these locations easier to find. Reviewed by: kib (earlier diff) Tested by: kris, pho (earlier diff) Revision Changes Path 1.187 +4 -0 src/sys/fs/msdosfs/msdosfs_vfsops.c 1.541 +5 -4 src/sys/kern/vfs_bio.c 1.177 +18 -13 src/sys/kern/vfs_cluster.c 1.143 +12 -15 src/sys/kern/vfs_default.c 1.722 +29 -25 src/sys/kern/vfs_subr.c 1.33 +1 -0 src/sys/nfs4client/nfs4_vfsops.c 1.42 +23 -29 src/sys/nfs4client/nfs4_vnops.c 1.154 +8 -5 src/sys/nfsclient/nfs_subs.c 1.203 +1 -0 src/sys/nfsclient/nfs_vfsops.c 1.282 +27 -33 src/sys/nfsclient/nfs_vnops.c 1.179 +7 -8 src/sys/nfsserver/nfs_serv.c 1.204 +1 -1 src/sys/sys/buf.h 1.20 +8 -16 src/sys/sys/bufobj.h 1.110 +5 -4 src/sys/ufs/ffs/ffs_inode.c 1.32 +11 -16 src/sys/ufs/ffs/ffs_rawread.c 1.221 +65 -69 src/sys/ufs/ffs/ffs_softdep.c 1.339 +4 -3 src/sys/ufs/ffs/ffs_vfsops.c 1.181 +14 -12 src/sys/ufs/ffs/ffs_vnops.c