lockmgr panic on shutdown

peter.edwards at openet-telecom.com peter.edwards at openet-telecom.com
Sat Nov 1 18:39:27 PST 2003



>> 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.




-------------- next part --------------
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;


More information about the freebsd-current mailing list