cvs commit: src/sys/fs/msdosfs msdosfs_denode.c msdosfs_lookup.c msdosfs_vfsops.c msdosfs_vnops.c

Bruce Evans bde at FreeBSD.org
Fri Oct 19 05:23:25 PDT 2007


bde         2007-10-19 12:23:25 UTC

  FreeBSD src repository

  Modified files:
    sys/fs/msdosfs       msdosfs_denode.c msdosfs_lookup.c 
                         msdosfs_vfsops.c msdosfs_vnops.c 
  Log:
  Implement the async (really, delayed-write) mount option for msdosfs.
  
  This is much simpler than for ffs since there are many fewer places
  where we need to choose between a delayed write and a sync write --
  just 5 in msdosfs and more than 30 in ffs.
  
  This is more complete and correct than in ffs.  Several places in ffs
  are are still missing the choice.  ffs_update() has a layering violation
  that breaks callers which want to force a sync update (mainly fsync(2)
  and O_SYNC write(2)).
  
  However, fsync(2) and O_SYNC write(2) are still more broken than in
  ffs, since they are broken for default (non-sync non-async) mounts
  too.  Both fail to sync the FAT in all cases, and both fail to sync
  the directory entry in some cases after losing a race.  Async everything
  is probably safer than the half-baked sync of metadata given by default
  mounts.
  
  Revision  Changes    Path
  1.98      +2 -2      src/sys/fs/msdosfs/msdosfs_denode.c
  1.52      +9 -3      src/sys/fs/msdosfs/msdosfs_lookup.c
  1.178     +1 -1      src/sys/fs/msdosfs/msdosfs_vfsops.c
  1.181     +6 -4      src/sys/fs/msdosfs/msdosfs_vnops.c


More information about the cvs-src mailing list