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