Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Feb 2003 03:41:59 -0500 (EST)
From:      Jeff Roberson <jroberson@chesapeake.net>
To:        Poul-Henning Kamp <phk@phk.freebsd.dk>
Cc:        current@FreeBSD.ORG
Subject:   =?X-UNKNOWN?Q?Re=3A_Diskless_b=F8rked?=
Message-ID:  <20030225034150.A49807-100000@mail.chesapeake.net>
In-Reply-To: <13110.1046161951@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
Please try this:
Index: nfs_vnops.c
===================================================================
RCS file: /home/ncvs/src/sys/nfsclient/nfs_vnops.c,v
retrieving revision 1.195
diff -u -r1.195 nfs_vnops.c
--- nfs_vnops.c 25 Feb 2003 03:37:47 -0000      1.195
+++ nfs_vnops.c 25 Feb 2003 08:31:54 -0000
@@ -2812,9 +2812,9 @@
                        panic("nfs_fsync: not dirty");
                if ((passone || !commit) && (bp->b_flags & B_NEEDCOMMIT))
{
                        BUF_UNLOCK(bp);
-                       VI_LOCK(vp);
                        continue;
                }
+               VI_UNLOCK(vp);
                bremfree(bp);
                if (passone || !commit)
                    bp->b_flags |= B_ASYNC;


On Tue, 25 Feb 2003, Poul-Henning Kamp wrote:

>
> recursed on non-recursive lock (sleep mutex) vnode interlock @ ../../../kern/vfs
> _subr.c:1897
> first acquired @ ../../../nfsclient/nfs_vnops.c:2786
> panic: recurse
> Debugger("panic")
> Stopped at      0xc0405cde = Debugger+0x7e:     xchgl   %ebx,0xc05aece0 = in_Deb
> ugger.0
> db> trace
> Debugger(c0466931,c04ff7e0,c0469426,d7aad8f8,1) at 0xc0405cde = Debugger+0x7e
> panic(c0469426,c0470d18,ae2,c046d74d,769) at 0xc022cd7d = panic+0x11d
> witness_lock(c418eb68,8,c046d74d,769,269) at 0xc0263853 = witness_lock+0x643
> _mtx_lock_flags(c418eb68,0,c046d74d,769,ce537610) at 0xc021ca1a = _mtx_lock_flag
> s+0x11a
> reassignbuf(ce537610,c418eb68,269,ce537610,ce537610) at 0xc02b7154 = reassignbuf
> +0xa4
> bundirty(ce537610,29c,d7aad9d0,c021cb22,c053d260) at 0xc029b185 = bundirty+0x85
> nfs_writebp(ce537610,1,c3f67c30,29c,d7aadaa0) at 0xc032e30d = nfs_writebp+0x9d
> nfs_bwrite(ce537610,12,0,ae2,c02652be) at 0xc0314631 = nfs_bwrite+0x31
> nfs_flush(c418eb68,c14fd280,1,c3f67c30,1) at 0xc032ddf3 = nfs_flush+0xb13
> nfs_fsync(d7aadb04,0,c046d74d,460,264) at 0xc032d2bf = nfs_fsync+0x3f
> vinvalbuf(c418eb68,1,c14fd280,c3f67c30,0) at 0xc02b48bf = vinvalbuf+0x16f
> nfs_vinvalbuf(c418eb68,1,c14fd280,c3f67c30,1) at 0xc0317af5 = nfs_vinvalbuf+0x25
> 5
> nfs_close(d7aadb94,c0482180,c418eb68,a,c14fd280) at 0xc0324090 = nfs_close+0xe0
> vn_close(c418eb68,a,c14fd280,c3f67c30,d7aadc34) at 0xc02c8695 = vn_close+0x65
> vn_closefile(c415b528,c3f67c30,c046412c,765,0) at 0xc02c9d9e = vn_closefile+0x3e
> fdrop_locked(c415b528,c3f67c30,c046412c,69f,4002) at 0xc01ff7cc = fdrop_locked+0
> x1fc
> fdrop(c415b528,c3f67c30,c413de34,0,4002) at 0xc01ff00a = fdrop+0x5a
> closef(c415b528,c3f67c30,c046412c,350,c415b528) at 0xc01fef8c = closef+0x1bc
> close(c3f67c30,d7aadd10,c047a999,407,1) at 0xc01fc73e = close+0x21e
> syscall(2f,2f,2f,0,0) at 0xc0422c0e = syscall+0x45e
> Xint0x80_syscall() at 0xc04084ad = Xint0x80_syscall+0x1d
> --- syscall (6, FreeBSD ELF32, close), eip = 0x804afdb, esp = 0xbfbff81c, ebp =
> 0xbfbff828 ---
> db>
>
> --
> Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
> phk@FreeBSD.ORG         | TCP/IP since RFC 956
> FreeBSD committer       | BSD since 4.3-tahoe
> Never attribute to malice what can adequately be explained by incompetence.
>
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-current" in the body of the message
>


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030225034150.A49807-100000>