From aagero@aage.aage.priv.no  Sun Dec 17 12:02:54 1995
Received: from birk04.studby.uio.no (root@birk04.studby.uio.no [129.240.214.13])
          by freefall.freebsd.org (8.7.3/8.7.3) with ESMTP id MAA15410
          for <FreeBSD-gnats-submit@freebsd.org>; Sun, 17 Dec 1995 12:02:53 -0800 (PST)
Received: (from aagero@localhost) by birk04.studby.uio.no (8.7.3/FreeBSD1.0) id VAA01981; Sun, 17 Dec 1995 21:02:48 +0100 (MET)
Message-Id: <199512172002.VAA01981@birk04.studby.uio.no>
Date: Sun, 17 Dec 1995 21:02:48 +0100 (MET)
From: aagero@aage.aage.priv.no
Reply-To: aagero@aage.aage.priv.no
To: FreeBSD-gnats-submit@freebsd.org
Subject: ext2fs problems
X-Send-Pr-Version: 3.2

>Number:         900
>Category:       kern
>Synopsis:       ext2fs triggers divide by zero trap in vnode_pager_haspage
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    dyson
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Dec 17 12:10:02 PST 1995
>Closed-Date:    Thu Jun 10 07:17:12 PDT 1999
>Last-Modified:  Thu Jun 10 07:18:34 PDT 1999
>Originator:     ge Rbekk
>Release:        FreeBSD 2.2-CURRENT i386
>Organization:
>Environment:

FreeBSD-CURRENT 2.2, 14. Dec.-sources.

>Description:

execution of large executables on a ext2 filesystem can trigger a divide-fault
trap which leads to kernel panic. This is not a problem with the linux
binary emulation but rather a filesystem problem.

>How-To-Repeat:

execute any large file on a linux partition, e.g.

/mount/linux/bin$ ./bash (I assume everyone has got this one :)

>Fix:
	
The problem lies in /sys/vm/vnode_pager.c, vnode_pager_haspage. The relevant
code:

    bsize = vp->v_mount->mnt_stat.f_iosize;
    pagesperblock = bsize / PAGE_SIZE;
    reqblock = pindex / pagesperblock;

The f_iosize _and_ f_bsize on my ext2fs partition is 1024 bytes, or at least
that is what statfs() reports. If bsize < PAGE_SIZE, pagesperblock is set
to 0. I have no fix.
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->dyson 
Responsible-Changed-By: gpalmer 
Responsible-Changed-When: Sun Jun 2 07:56:28 PDT 1996 
Responsible-Changed-Why:  
John did the ext2fs work, and is also our VM guru... 
Responsible-Changed-From-To: dyson->dg 
Responsible-Changed-By: wosch 
Responsible-Changed-When: Wed Jun 17 15:15:24 MEST 1998 
Responsible-Changed-Why:  
John Dyson has resigned from the FreeBSD project. 
State-Changed-From-To: open->closed 
State-Changed-By: sheldonh 
State-Changed-When: Thu Jun 10 07:17:12 PDT 1999 
State-Changed-Why:  
Fixed in revision 1.57 of vnode_pager.c 


Responsible-Changed-From-To: dg->dyson 
Responsible-Changed-By: sheldonh 
Responsible-Changed-When: Thu Jun 10 07:17:12 PDT 1999 
Responsible-Changed-Why:  
John's fix. 
>Unformatted:
