Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Aug 1998 13:42:44 -0700 (PDT)
From:      Julian Elischer <julian@whistle.com>
To:        Andrzej Bialecki <abial@nask.pl>
Cc:        freebsd-current@FreeBSD.ORG
Subject:   Re: It's MFS panic.. (Re: Panic with DEVFS)
Message-ID:  <Pine.BSF.3.95.980827134039.3675A-100000@current1.whistle.com>
In-Reply-To: <Pine.BSF.4.00.9808271948440.2885-100000@korin.warman.org.pl>

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

here.. try the following fix:



On Thu, 27 Aug 1998, Andrzej Bialecki wrote:

> 
> On Thu, 27 Aug 1998, Julian Elischer wrote:
> 
> > ooooohhhhhhh
> 
> I like it... This means that someone knows what's going on. :-)
> 
> > specfs is not active if DEVFS is active
> > so the spec_fsync should not be called......
> > I bet it's hard coded into MFS..
> > 
> > it should be replaced with a VOP_FSYNC(vn)
> > whch would call devfs_fsync() instead......
> > 
> > (yech)
> > I'll look at it right now
> 
> Thanks!
> 
> Well, this also means I'll have to prepare a bugfix release for picobsd...
> :-((


yep 

Index: mfs_vnops.c
===================================================================
RCS file: /home/ncvs/src/sys/ufs/mfs/mfs_vnops.c,v
retrieving revision 1.37
diff -c -r1.37 mfs_vnops.c
*** mfs_vnops.c	1998/07/11 07:46:05	1.37
--- mfs_vnops.c	1998/08/27 20:40:22
***************
*** 111,120 ****
  
  static int
  mfs_fsync(ap)
! 	struct vop_fsync_args *ap;
  {
  
! 	return (VOCALL(spec_vnodeop_p, VOFFSET(vop_fsync), ap));
  }
  
  /*
--- 111,126 ----
  
  static int
  mfs_fsync(ap)
!        struct vop_fsync_args /* {
! 		struct vnode *a_vp;
! 		struct ucred *a_cred;
! 		int a_waitfor;
! 		struct proc *a_p;
!        } */ *ap;
  {
  
! 	return (VOP_FSYNC(ap->a_vp, ap->a_cred, ap->a_waitfor, ap->a_p));
! 	/* return (VOCALL(spec_vnodeop_p, VOFFSET(vop_fsync), ap));*/
  }
  
  /*
***************
*** 317,324 ****
  
  static int
  mfs_getpages(ap)
! 	struct vop_getpages_args *ap;
  {
  
! 	return (VOCALL(spec_vnodeop_p, VOFFSET(vop_getpages), ap));
  }
--- 323,339 ----
  
  static int
  mfs_getpages(ap)
! 	struct vop_getpages_args /* {
! 		struct vnodeop_desc *a_desc;
! 		struct vnode *a_vp;
! 		vm_page_t *a_m;
! 		int a_count;
! 		int a_reqpage;
! 		vm_ooffset_t a_offset;
! 	} */ *ap;
  {
  
! 	return (VOP_GETPAGES(ap->a_vp, ap->a_m, ap->a_count,
! 				ap->a_reqpage, ap->a_offset));
! 	/*return (VOCALL(spec_vnodeop_p, VOFFSET(vop_getpages), ap));*/
  }





julian



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?Pine.BSF.3.95.980827134039.3675A-100000>