Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 Nov 2003 03:34:55 +0100
From:      peter.edwards@openet-telecom.com
To:        "Doug White" <dwhite@gumbysoft.com>
Cc:        current@freebsd.org
Subject:   RE: lockmgr panic on shutdown
Message-ID:  <3F6FE9110000103A@mail.openet-telecom.com>
In-Reply-To: <20031101181623.O70057@carver.gumbysoft.com>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]


>> For giggles I'm rolling back vfs_default.c back to 1.87 since its along
>> the backtrace path.
>
>This didn't work so -CURRENT is fully broke.
>
>I'd suggest staying on 10/30 not before 4PM PST if you want to not crash
>on shutdown.
>

The patch worked for me. (Well, a slightly modified one: I passed 0 for
the
thread argument to vget: It recognises that as special).

Included here is the patch to both the ffs and default "sync" operations.
I didn't exercise the default one, but the ffs case is certainly behaving
itself.





[-- Attachment #2 --]
Index: kern/vfs_default.c
===================================================================
RCS file: /usr/cvs/FreeBSD-CVS/src/sys/kern/vfs_default.c,v
retrieving revision 1.89
diff -u -r1.89 vfs_default.c
--- kern/vfs_default.c	1 Nov 2003 05:51:54 -0000	1.89
+++ kern/vfs_default.c	2 Nov 2003 03:36:03 -0000
@@ -898,7 +898,7 @@
 		}
 		mtx_unlock(&mntvnode_mtx);
 
-		if ((error = vget(vp, lockreq, td)) != 0) {
+		if ((error = vget(vp, lockreq, 0)) != 0) {
 			mtx_lock(&mntvnode_mtx);
 			if (error == ENOENT)
 				goto loop;
Index: ufs/ffs/ffs_vfsops.c
===================================================================
RCS file: /usr/cvs/FreeBSD-CVS/src/sys/ufs/ffs/ffs_vfsops.c,v
retrieving revision 1.221
diff -u -r1.221 ffs_vfsops.c
--- ufs/ffs/ffs_vfsops.c	1 Nov 2003 05:51:54 -0000	1.221
+++ ufs/ffs/ffs_vfsops.c	2 Nov 2003 03:22:13 -0000
@@ -1158,7 +1158,7 @@
 			continue;
 		}
 		mtx_unlock(&mntvnode_mtx);
-		if ((error = vget(vp, lockreq, td)) != 0) {
+		if ((error = vget(vp, lockreq, 0)) != 0) {
 			mtx_lock(&mntvnode_mtx);
 			if (error == ENOENT)
 				goto loop;
help

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