git: HAMMER VFS - Fix an edge case in hammer_inode_waitreclaims()
dillon at crater.dragonflybsd.org
Tue Mar 16 10:43:11 PDT 2010
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(-)
DragonFly BSD source repository
More information about the Commits