From owner-cvs-all Fri Oct 12 17: 5:27 2001 Delivered-To: cvs-all@freebsd.org Received: from earth.backplane.com (earth-nat-cw.backplane.com [208.161.114.67]) by hub.freebsd.org (Postfix) with ESMTP id 4ACBE37B408; Fri, 12 Oct 2001 17:05:19 -0700 (PDT) Received: (from dillon@localhost) by earth.backplane.com (8.11.6/8.11.2) id f9D05Fb37190; Fri, 12 Oct 2001 17:05:15 -0700 (PDT) (envelope-from dillon) Date: Fri, 12 Oct 2001 17:05:15 -0700 (PDT) From: Matt Dillon Message-Id: <200110130005.f9D05Fb37190@earth.backplane.com> To: Mike Silbersack , , Subject: Re: cvs commit: src/sys/vm vnode_pager.c References: <20011012145142.L29945-100000@achilles.silby.com> <200110122026.f9CKQMS35969@earth.backplane.com> Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG : It depends heavily on the situation. A file typically must be written : through an mmap(), or a recently-write()en file must be mmap()'d and : then accessed via the mmap() before the dirty buffer is flushed. Only : the last page of a file can get into this state and typically only : if it is stored as a single fragment by the filesystem - i.e. the : physical I/O executed by the filesystem is less then a page. Hmm. in re-reading this I think I have to clarify something... when I said 'before the dirty buffer is flushed' I meant that if you write() a small file and then mmap/access it before the buf_daemon gets around to flushing the buffer that was diritied by the write, then the mmap/access will put the page into the weird state. The same thing can occur if you mmap() a file shared+RW and modify the fragment via the mmap. Any other sequence of events will NOT manifest the bug. Writing a file and not accessing it via mmap, or mmap() a file for read access which was flushed to disk long ago... those will not cause the bug to manifest. -Matt To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message