From owner-freebsd-bugs Sat Mar 22 23:10:05 1997 Return-Path: <owner-bugs> Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id XAA27348 for bugs-outgoing; Sat, 22 Mar 1997 23:10:05 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id XAA27335; Sat, 22 Mar 1997 23:10:02 -0800 (PST) Date: Sat, 22 Mar 1997 23:10:02 -0800 (PST) Message-Id: <199703230710.XAA27335@freefall.freebsd.org> To: freebsd-bugs Cc: From: Peter Wemm <peter@spinner.DIALix.COM> Subject: Re: kern/3064: nfs server link() handler panics with non-recursive lock reentry Reply-To: Peter Wemm <peter@spinner.DIALix.COM> Sender: owner-bugs@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk The following reply was made to PR kern/3064; it has been noted by GNATS. From: Peter Wemm <peter@spinner.DIALix.COM> To: FreeBSD-gnats-submit@freebsd.org Cc: Subject: Re: kern/3064: nfs server link() handler panics with non-recursive lock reentry Date: Sun, 23 Mar 1997 15:07:32 +0800 > >Fix: > > Not known.. I don't understand vnode locking under lite2 well enough. It seems the panic is happening within VOP_LINK(), so nfsrv_link() doesn't appear to be setting up the locking properly when the target file exists. panic: lockmgr: locking against myself: pid %d #0 0xf01152f7 in boot () (kgdb) where #0 0xf01152f7 in boot () #1 0xf010162e in db_fncall () #2 0xf0101365 in db_command () #3 0xf01014e2 in db_command_loop () #4 0xf0103cc8 in db_trap () #5 0xf01b9b0b in kdb_trap () #6 0xf01c2654 in trap () #7 0xf01b9d09 in Debugger () #8 0xf01155ca in panic () #9 0xf0110922 in lockmgr () #10 0xf01a4e2b in ufs_lock () #11 0xf013a7d3 in vn_lock () #12 0xf01a37cb in ufs_link () #13 0xf0167f30 in nfsrv_link () #14 0xf0178538 in nfssvc_nfsd () #15 0xf0177d58 in nfssvc () #16 0xf01c3097 in syscall () Interestingly, it looks like nfsrv_link() is supposed to be checking for the existance of the target file, but that's not clear. Cheers, -Peter