git: kernel - Fix namecache memory exhaustion edge case
    Matthew Dillon 
    dillon at crater.dragonflybsd.org
       
    Mon Nov 22 23:30:25 PST 2010
    
    
  
commit 9e10d70bff3c00c19a8b841dccbcd6aa29100793
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Mon Nov 22 23:24:25 2010 -0800
    kernel - Fix namecache memory exhaustion edge case
    
    * The namecache has traditionally relied on vnode limits to avoid
      blowing up its memory pool.  However, creating millions of hardlinks
      to the same vnode easily circumvents this assumption.
    
    * Enhance the negative cache hysteresis code with a section for the
      positive cache that does the same thing, preventing the namecache
      from growing greater than 2x maxvnodes.
    
      This situation will not occur under normal operation, it is strictly
      for correctness.  The kernel should never panic on normal filesystem
      operations even if those operations are unrealistic.
    
    * Tested w/HAMMER and a few million hardlinks to a single file.
    
    Reported-by: Venkatesh Srinivas <me at acm.jhu.edu>
Summary of changes:
 sys/kern/vfs_cache.c |   95 +++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 83 insertions(+), 12 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/9e10d70bff3c00c19a8b841dccbcd6aa29100793
-- 
DragonFly BSD source repository
    
    
More information about the Commits
mailing list