git: kernel - Close MP race in vnode allocation code

Matthew Dillon dillon at
Sat Feb 6 09:13:22 PST 2010

commit b8b1dca3e2045dad434bd948e1225757e8dfbe97
Author: Matthew Dillon <dillon at>
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
      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(-)

DragonFly BSD source repository

More information about the Commits mailing list