NetBSD Problem Report #28673

From dyoung@netbsd.org  Wed Dec 15 23:23:19 2004
Return-Path: <dyoung@netbsd.org>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by narn.netbsd.org (Postfix) with ESMTP id 8C7E3251EAF
	for <gnats-bugs@gnats.netbsd.org>; Wed, 15 Dec 2004 23:23:19 +0000 (UTC)
Message-Id: <20041215232319.6940B517F@mail.netbsd.org>
Date: Wed, 15 Dec 2004 23:23:19 +0000 (UTC)
From: dyoung@netbsd.org
Reply-To: dyoung@netbsd.org
To: gnats-bugs@netbsd.org
Subject: pages allocated by genfs_getpages() prematurely written to disk
X-Send-Pr-Version: 3.95

>Number:         28673
>Category:       kern
>Synopsis:       pages allocated by genfs_getpages() prematurely written to disk
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Dec 15 23:24:00 +0000 2004
>Originator:     David Young
>Release:        NetBSD 2.0
>Organization:
NetBSD
>Environment:
>Description:
According to Charles Hannum, genfs_getpages() may allow pages to be written
out before there is data in them.  He says on icb,

    genfs_getpages() is used to allocate new blocks.  Note it clears PG_CLEAN
    *and may unlock the pages, allowing them to be written out before there is
    actual data in them*.

Further, Charles says,

    This is probably why Dan (Carosone) sees zeroed blocks instead of data.

Even worse, there is a systematic problem with the Unified Buffer Cache (UBC),

    ... there are too many places where PG_CLEAN is maintained, and often far
    from where a page is actually modified ...  That's part of the problem
    with genfs_getpages().

>How-To-Repeat:
Code inspection.
>Fix:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.