cvs commit: src/sys/gnu/fs/ext2fs fs.h src/sys/kern kern_shutdown.c src/sys/sys buf.h

Don Lewis truckman at FreeBSD.org
Wed Sep 7 23:30:06 PDT 2005


truckman    2005-09-08 06:30:05 UTC

  FreeBSD src repository

  Modified files:
    sys/gnu/fs/ext2fs    fs.h 
    sys/kern             kern_shutdown.c 
    sys/sys              buf.h 
  Log:
  Add a new struct buf flag bit, B_PERSISTENT, and use it to tag
  struct bufs that are persistently held by ext2fs.  Ignore any buffers
  with this flag in the code in boot() that counts "busy" and dirty
  buffers and attempts to sync the dirty buffers, which is done before
  attempting to unmount all the file systems during shutdown.
  
  This fixes the problem caused by any ext2fs file systems that are
  mounted at system shutdown time, which caused boot() to give up on
  a non-zero number of buffers and skip the call to vfs_unmountall().
  This left all the mounted file systems in a dirty state and caused
  them to all require cleanup by fsck on reboot.
  
  Move the two separate copies of the "busy" buffer test in boot()
  to a separate function.
  
  Nuke the useless spl() stuff in the ext2fs ULCK_BUF() macro.
  
  Bring the PRINT_BUF_FLAGS definition in sys/buf.h up to date with
  this and previous flag changes.
  
  PR:             kern/56675, kern/85163
  Tested by:      "Matthias Andree" matthias.andree at gmx.de
  Reviewed by:    bde
  MFC after:      3 days
  
  Revision  Changes    Path
  1.18      +8 -8      src/sys/gnu/fs/ext2fs/fs.h
  1.175     +13 -11    src/sys/kern/kern_shutdown.c
  1.189     +4 -4      src/sys/sys/buf.h


More information about the cvs-src mailing list