cvs commit: src/sys/vfs/hammer hammer.h hammer_inode.c hammer_prune.c hammer_transaction.c hammer_vfsops.c hammer_vnops.c

Matthew Dillon dillon at
Tue Sep 23 14:05:27 PDT 2008

dillon      2008/09/23 14:03:53 PDT

DragonFly src repository

  Modified files:
    sys/vfs/hammer       hammer.h hammer_inode.c hammer_prune.c 
                         hammer_transaction.c hammer_vfsops.c 
  Change the autoflush code to autoflush when a flush group reaches a
  certain point rather then trying to do it from the reclaim code.  This
  smooths out the flush sequences.  The default is 2000, adjustable via
  the vfs.hammer.autoflush sysctl.
  Move hammer_inode_waitreclaims() calls.  In particular, remove the calls
  in the VOP_CLOSE() path.  The problem with waiting for excessive reclaims to
  drop in these paths is that the inode/vnode operation in question is probably
  cached.  Thus unrelated programs, even those just opening /dev/null (if /dev
  is on a HAMMER filesystem), can wind up blocking in hmrrcm for no good reason.
  Instead defer the hammer_inode_waitreclaims() call to the end of the
  transaction code if a new inode had to be created during the transaction.
  Thus we tend to block on operations that did not have previously cached
  vnodes to work with instead of operations on cached vnodes.
  Reported-by: Hasso Tepper <hasso at>
  Revision  Changes    Path
  1.128     +4 -0      src/sys/vfs/hammer/hammer.h
  1.112     +8 -9      src/sys/vfs/hammer/hammer_inode.c
  1.19      +1 -0      src/sys/vfs/hammer/hammer_prune.c
  1.25      +5 -0      src/sys/vfs/hammer/hammer_transaction.c
  1.72      +3 -0      src/sys/vfs/hammer/hammer_vfsops.c
  1.98      +1 -9      src/sys/vfs/hammer/hammer_vnops.c

More information about the Commits mailing list