cvs commit: src/sys/sys buf.h src/sys/kern vfs_bio.c vfs_cluster.c
src/sys/ufs/ffs ffs_softdep.c
Jeff Roberson
jeff at FreeBSD.org
Wed Aug 27 23:55:19 PDT 2003
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
More information about the cvs-src
mailing list