Subject: Re: panic: lfs_nextseg: no clean segments
To: Manuel Bouyer <bouyer@antioche.lip6.fr>
From: Konrad Schroder <perseant@hitl.washington.edu>
List: tech-kern
Date: 11/20/2000 11:55:39
On Sun, 19 Nov 2000, Manuel Bouyer wrote:

> Yes, LFS is very good for loads like this.
> Hum, I'd try a very recent -current with all the LFS fixes to
> see if it helps. Porting these fixes to 1.5 shouldn't be hard.

Yes, I hope to have all of this pulled up to the 1.5 branch as soon as the
release engineering team reopens the pullup queue.  In the meantime,
today's -current versions of /usr/src/sys/ufs/lfs/* can replace the 1.5
versions and run, if after copying the files over you apply the enclosed
patch (or "cvs update -j1.45 -j1.44 lfs_vnops.c") to back out the fsync
api change that didn't make it into 1.5.

------------------------------------------------------------------------
Konrad Schroder          http://www.hitl.washington.edu/people/perseant/
Information Tech & Services   Box 352142 -or- 215 Fluke Hall, Mason Road
Human Interface Technology Lab                  University of Washington
Voice: 206.616.1478   FAX: 206.543.5380          Seattle, WA, 98195, USA


Index: lfs_vnops.c
===================================================================
RCS file: /cvsroot/syssrc/sys/ufs/lfs/lfs_vnops.c,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- lfs_vnops.c	2000/09/09 04:49:55	1.44
+++ lfs_vnops.c	2000/09/19 22:03:15	1.45
@@ -1,4 +1,4 @@
-/*	$NetBSD: lfs_vnops.c,v 1.44 2000/09/09 04:49:55 perseant Exp $	*/
+/*	$NetBSD: lfs_vnops.c,v 1.45 2000/09/19 22:03:15 fvdl Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2000 The NetBSD Foundation, Inc.
@@ -282,6 +282,8 @@
 		struct vnode *a_vp;
 		struct ucred *a_cred;
 		int a_flags;
+		off_t offlo;
+		off_t offhi;
 		struct proc *a_p;
 	} */ *ap = v;
 	
@@ -487,7 +489,7 @@
 	 * return.  But, that leaves this vnode in limbo, also not good.
 	 * Can this ever happen (barring hardware failure)?
 	 */
-	if ((error = VOP_FSYNC(*vpp, NOCRED, FSYNC_WAIT, curproc)) != 0) {
+	if ((error = VOP_FSYNC(*vpp, NOCRED, FSYNC_WAIT, 0, 0, curproc)) != 0) {
 		printf("Couldn't fsync in mknod (ino %d)---what do I do?\n",
 		       VTOI(*vpp)->i_number);
 		return (error);