DragonFly commits List (threaded) for 2010-03
git: HAMMER VFS - Fix an edge case in hammer_inode_waitreclaims()
Author: Matthew Dillon <firstname.lastname@example.org>
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