From owner-cvs-all Thu Sep 24 11:37:24 1998 Return-Path: Received: (from daemon@localhost) by hub.freebsd.org (8.8.8/8.8.8) id LAA16723 for cvs-all-outgoing; Thu, 24 Sep 1998 11:37:24 -0700 (PDT) (envelope-from owner-cvs-all) Received: from lor.watermarkgroup.com (lor.watermarkgroup.com [207.202.73.33]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id LAA16707 for ; Thu, 24 Sep 1998 11:37:20 -0700 (PDT) (envelope-from luoqi@watermarkgroup.com) Received: (from luoqi@localhost) by lor.watermarkgroup.com (8.8.8/8.8.8) id OAA26496; Thu, 24 Sep 1998 14:37:15 -0400 (EDT) (envelope-from luoqi) Date: Thu, 24 Sep 1998 14:37:15 -0400 (EDT) From: Luoqi Chen Message-Id: <199809241837.OAA26496@lor.watermarkgroup.com> To: committers@FreeBSD.ORG, dillon@backplane.com Subject: Re: Having some serious file write / mmap inconsistancy problems Sender: owner-cvs-all@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > I've done some more tracing, but it's almost black magic. Can someone > explain this? > > * bdwrite() sets B_DELWRI in the bp, but then it goes off and calls > vfs_clean_pages() on the underlying pages. > > * There are a number of situations where the pages can be disassociated > from the bp. vm_hold_free_pages() will disassociate the pages, > allocbuf() may disassociate pages, and vfs_vmio_release() will > disassociate the pages. All of these can occur in situations where > B_DELWRI is completely ignored. > It is very serious if these could ever happen. Could you add some printf statements at the beginning of these functions to check if the B_DELWRI flag is set for the buffer? -lq