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

git: kernel - Fix recursive lockmgr lock panic when creating a hardlink


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 4 Dec 2009 14:35:34 -0800 (PST)

commit 1cd6569033ebea86452882fbb4a29a908568a3eb
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Fri Dec 4 14:32:48 2009 -0800

    kernel - Fix recursive lockmgr lock panic when creating a hardlink
    
    * HAMMER uses non-recursive vnode locks.  Fix a case where attempting
      to hardlink A to B where both already exist and point to the same
      inode can result in a panic if B is not in the namecache.
    
      HAMMER must temporarily lock the vnode it returns in the resolver
      and kern_link() was already holding A locked.  This all occurs
      before kern_link() is able to check whether A and B are the same
      so it can't be avoided.
    
      Solve the problem by unlocking A while resolving B.
    
    Reported-by: Goetz Isenmann <info@goetz-isenmann.de>

Summary of changes:
 sys/kern/vfs_syscalls.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/1cd6569033ebea86452882fbb4a29a908568a3eb


-- 
DragonFly BSD source repository



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