git: kernel - Close MP race in vnode allocation code

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Feb 6 09:13:22 PST 2010


commit b8b1dca3e2045dad434bd948e1225757e8dfbe97
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Feb 6 09:09:22 2010 -0800

    kernel - Close MP race in vnode allocation code
    
    * vx_lock_nonblock() is used by allocfreevnode() to interlock the
      vnode being freed.  However, this function will incorrect succeed
      on a vnode recursively held by a caller of allocfreevnode() which
      is in the middle of being reclaimed if the vnode in question
      allows LK_CANRECURSE locks in the lockinit.  UFS vnodes use this
      mechanic.
    
      Add a little bit of code to close the hole.

Summary of changes:
 sys/kern/vfs_lock.c |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/b8b1dca3e2045dad434bd948e1225757e8dfbe97


-- 
DragonFly BSD source repository





More information about the Commits mailing list