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

cvs commit: src/sys/kern vfs_mount.c


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 8 Feb 2005 18:51:04 -0800 (PST)

dillon      2005/02/08 18:51:04 PST

DragonFly src repository

  Modified files:
    sys/kern             vfs_mount.c 
  Log:
  Fix a case that can prevent the vnlru_proc vnode recycler from operating.
  The vnode recycler is not allowed to recycle 'internal' directory nodes
  in the namecache topology.  i.e. if the path A/B/C/D is cached, then the
  recycler is not allowed to remove A, B, or C.  The recycler checks
  this condition by checking the vnode's v_holdcnt.  The recycler also tries
  to recycle vnodes with little or no cached data rather then the vnodes
  with a great deal of cached data.
  
  However, the buffer cache now uses v_holdcnt as well.  If the buffer cache
  is large enough and maxvnodes is small enough the recycler can wind up not
  finding any vnodes to recycle.
  
  The fix is clean out the buffers with the candidate vnode and then make a
  final v_holdcnt check.
  
  Reported-by: Gary Allan <dragonfly@xxxxxxxxxxxxxxx>
  
  Revision  Changes    Path
  1.7       +57 -4     src/sys/kern/vfs_mount.c


http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_mount.c.diff?r1=1.6&r2=1.7&f=u



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