git: HAMMER VFS - Fix an edge case in hammer_inode_waitreclaims()

Matthew Dillon dillon at crater.dragonflybsd.org
Tue Mar 16 10:43:11 PDT 2010


commit 858cc00ada5173ec94940260555b52e834027986
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Tue Mar 16 10:39:01 2010 -0700

    HAMMER VFS - Fix an edge case in hammer_inode_waitreclaims()
    
    * Detached inodes can build up in the flusher, causing iqueued/reclaiming
      to increase.  hammer_inode_waitreclaims() is designed to slow down
      the processes responsible (typically a rm -rf) to prevent the backlog
      from blowing out kernel memory.
    
    * hammer_inode_waitreclaims() had a bug where a new pid entry was not
      being placed in the hash table such that it would be properly found
      by the chaining.  Fix this case.
    
    * This fixes an issue where a simultanious rm -rf and (typically) two or
      more directory iterations via ls or find over hundreds of thousands or
      millions of files could cause the number of detached inodes to increase
      in an unbounded fashion.

Summary of changes:
 sys/vfs/hammer/hammer_inode.c |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/858cc00ada5173ec94940260555b52e834027986


-- 
DragonFly BSD source repository





More information about the Commits mailing list