DragonFly commits List (threaded) for 2008-09
DragonFly BSD
DragonFly commits List (threaded) for 2008-09
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

cvs commit: src/sys/vfs/hammer hammer_inode.c hammer_object.c hammer_vnops.c


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 23 Sep 2008 15:28:56 -0700 (PDT)

dillon      2008/09/23 15:28:56 PDT

DragonFly src repository

  Modified files:
    sys/vfs/hammer       hammer_inode.c hammer_object.c 
                         hammer_vnops.c 
  Log:
  Fix a double-flush which was occuring for every unlinked inode, resulting
  in very inefficient flushing operations which also prevented any inode from
  being reclaimed until the entire flush batch (which could be upwards of 40,000
  inodes) completed.
  
  The double-flush was caused by the HAMMER_INODE_DELETING flag being
  improperly set twice.
  
  Clear the HAMMER_INODE_REFLUSH flag if a reflush was queued but the
  modmask is cleared by the prior flush.
  
  Adjust the directory mtime before flushing an underlying inode, avoiding
  a double flush of the directory inode.
  
  Reported-by: Hasso Tepper <hasso@estpak.ee>
  
  Revision  Changes    Path
  1.113     +18 -10    src/sys/vfs/hammer/hammer_inode.c
  1.97      +2 -2      src/sys/vfs/hammer/hammer_object.c
  1.99      +6 -1      src/sys/vfs/hammer/hammer_vnops.c


http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_inode.c.diff?r1=1.112&r2=1.113&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.96&r2=1.97&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vnops.c.diff?r1=1.98&r2=1.99&f=u



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]