Date: Wed, 27 Aug 2003 23:55:19 -0700 (PDT) From: Jeff Roberson <jeff@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/sys buf.h src/sys/kern vfs_bio.c vfs_cluster.c src/sys/ufs/ffs ffs_softdep.c Message-ID: <200308280655.h7S6tJTS064892@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
jeff 2003/08/27 23:55:18 PDT FreeBSD src repository Modified files: sys/sys buf.h sys/kern vfs_bio.c vfs_cluster.c sys/ufs/ffs ffs_softdep.c Log: - Move BX_BKGRDWAIT and BX_BKGRDINPROG to BV_ and the b_vflags field. - Surround all accesses of the BKGRD{WAIT,INPROG} flags with the vnode interlock. - Don't use the B_LOCKED flag and QUEUE_LOCKED for background write buffers. Check for the BKGRDINPROG flag before recycling or throwing away a buffer. We do this instead because it is not safe for us to move the original buffer to a new queue from the callback on the background write buffer. - Remove the B_LOCKED flag and the locked buffer queue. They are no longer used. - The vnode interlock is used around checks for BKGRDINPROG where it may not be strictly necessary. If we hold the buf lock the a back-ground write will not be started without our knowledge, one may only be completed while we're not looking. Rather than remove the code, Document two of the places where this extra locking is done. A pass should be done to verify and minimize the locking later. Revision Changes Path 1.398 +78 -73 src/sys/kern/vfs_bio.c 1.143 +11 -7 src/sys/kern/vfs_cluster.c 1.155 +8 -5 src/sys/sys/buf.h 1.140 +20 -12 src/sys/ufs/ffs/ffs_softdep.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200308280655.h7S6tJTS064892>