cvs commit: src/sys/fs/msdosfs msdosfs_vnops.c

Bruce Evans bde at FreeBSD.org
Thu Oct 18 00:26:21 PDT 2007


bde         2007-10-18 07:26:21 UTC

  FreeBSD src repository

  Modified files:
    sys/fs/msdosfs       msdosfs_vnops.c 
  Log:
  In msdosfs_settattr(), don't do synchronous updates of the denode
  (except indirectly for the size pseudo-attribute).  If anything deserves
  a sync update, then it is ids and immutable flags, since these are
  related to security, but ffs never synced these and msdosfs doesn't
  support them.  (ufs_setattr() only does an update in one case where
  it is least needed (for timestamps); it did pessimal sync updates for
  timestamps until 1998/03/08 but was changed for unlogged reasons related
  to soft updates.)
  
  Now msdosfs calls deupdat() with waitfor == 0, which normally gives a
  delayed update to disk but always gives a sync update of timestamps
  in core, while for ffs everything is delayed until the syncer daemon
  or other activity causes an update (except for timestamps).
  
  This gives a large optimization mainly for things like cp -p, where
  attribute adjustment could easily triple the number of physical I/O's
  if it is done synchronously (but cp -p to msdosfs is not as bad as
  that, since msdosfs doesn't support many attributes so null adjustments
  are more common, and msdosfs doesn't support ctimes so even if cp
  doesn't weed out null adjustments they don't become non-null after
  clobbering the ctime).
  
  Revision  Changes    Path
  1.180     +1 -1      src/sys/fs/msdosfs/msdosfs_vnops.c


More information about the cvs-all mailing list