Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Dec 1995 21:02:48 +0100 (MET)
From:      aagero@aage.aage.priv.no
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/900: ext2fs problems
Message-ID:  <199512172002.VAA01981@birk04.studby.uio.no>
Resent-Message-ID: <199512172010.MAA15939@freefall.freebsd.org>

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

>Number:         900
>Category:       kern
>Synopsis:       ext2fs triggers divide by zero trap in vnode_pager_haspage
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Dec 17 12:10:02 PST 1995
>Last-Modified:
>Originator:     Åge Røbekk
>Organization:
>Release:        FreeBSD 2.2-CURRENT i386
>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.
>Audit-Trail:
>Unformatted:



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