cvs commit: src/sbin/fsck_msdosfs fat.c

Bruce Evans bde at FreeBSD.org
Thu Feb 5 07:18:29 PST 2004


bde         2004/02/05 07:18:18 PST

  FreeBSD src repository

  Modified files:
    sbin/fsck_msdosfs    fat.c 
  Log:
  Fixed some bugs in checkdirty().  The check for the clean bit was
  combined with the the signature check in a wrong way (basically
  (dirty:= signature_recognised() && !clean) instead of
  (mightbedirty:= !signature_recognized || !clean), so file systems
  with unrecognized signatures were considered clean.  Many of the
  don't-care and reserved bits were not ignored, so some file systems
  with valid signatures were unrecognized.  One of my FAT32 file systems
  has a signature of f8,ff,ff,ff,ff,ff,ff,f7 when dirty, but only
  f8,ff,ff,0f,ff,ff,ff,07 was recognised as dirty for FAT32, so the
  fail-unsafeness made my file system always considered clean.
  
  Check the i/o non-error bit in checkdirty().  Its absence would give
  an unrecognized signature in code that is unaware of it, but we now
  mask it out of the signature so we have to check it explicitly.  This
  combines naturally with the check of the clean bit.
  
  Reviewed by:    rnordier (except for final details)
  
  Revision  Changes    Path
  1.7       +27 -9     src/sbin/fsck_msdosfs/fat.c


More information about the cvs-src mailing list