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>
index | next in thread | raw e-mail
>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:
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199512172002.VAA01981>
