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

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


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 16 Mar 2010 10:42:31 -0700 (PDT)

commit 858cc00ada5173ec94940260555b52e834027986
Author: Matthew Dillon <dillon@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



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