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

看板DFBSD_commit作者時間16年前 (2009/12/05 07:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
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
文章代碼(AID): #1B6PIoBD (DFBSD_commit)