From owner-freebsd-bugs Sun Dec 17 12:10:05 1995 Return-Path: owner-bugs Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id MAA15946 for bugs-outgoing; Sun, 17 Dec 1995 12:10:05 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id MAA15939 Sun, 17 Dec 1995 12:10:03 -0800 (PST) Resent-Date: Sun, 17 Dec 1995 12:10:03 -0800 (PST) Resent-Message-Id: <199512172010.MAA15939@freefall.freebsd.org> Resent-From: gnats (GNATS Management) Resent-To: freebsd-bugs Resent-Reply-To: FreeBSD-gnats@freefall.FreeBSD.org, aagero@aage.aage.priv.no 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 ; 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 X-Send-Pr-Version: 3.2 Subject: kern/900: ext2fs problems Sender: owner-bugs@freebsd.org Precedence: bulk >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: