From owner-cvs-all Tue Mar 2 8:42:56 1999 Delivered-To: cvs-all@freebsd.org Received: from alpo.whistle.com (alpo.whistle.com [207.76.204.38]) by hub.freebsd.org (Postfix) with ESMTP id 05CE51512E; Tue, 2 Mar 1999 08:42:53 -0800 (PST) (envelope-from julian@whistle.com) Received: (from daemon@localhost) by alpo.whistle.com (8.8.5/8.8.5) id IAA05505; Tue, 2 Mar 1999 08:32:28 -0800 (PST) Received: from current1.whistle.com(207.76.205.22) via SMTP by alpo.whistle.com, id smtpdRS5494; Tue Mar 2 16:32:22 1999 Date: Tue, 2 Mar 1999 08:32:18 -0800 (PST) From: Julian Elischer To: Kirk McKusick Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/sys buf.h src/sys/ufs/ffs ffs_vnops.c In-Reply-To: <199903020404.UAA27314@freefall.freebsd.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk I guess I should check the code, but do yuo toggle the bit beteen 1 one pass and 0 the next? (or do 2 passes each time?) julian On Mon, 1 Mar 1999, Kirk McKusick wrote: > mckusick 1999/03/01 20:04:31 PST > > Modified files: > sys/sys buf.h > sys/ufs/ffs ffs_vnops.c > Log: > When fsync'ing a file on a filesystem using soft updates, we first try > to write all the dirty blocks. If some of those blocks have dependencies, > they will be remarked dirty when the I/O completes. On systems with > really fast I/O systems, it is possible to get in an infinite loop trying > to flush the buffers, because the I/O finishes before we can get all the > dirty buffers off the v_dirtyblkhd list and into the I/O queue. (The > previous algorithm looped over the v_dirtyblkhd list writing out buffers > until the list emptied.) So, now we mark each buffer that we try to > write so that we can distinguish the ones that are being remarked dirty > from those that we have not yet tried to flush. Once we have tried to > push every buffer once, we then push any associated metadata that is > causing the remaining buffers to be redirtied. > > Submitted by: Matthew Dillon > > Revision Changes Path > 1.64 +2 -2 src/sys/sys/buf.h > 1.55 +18 -10 src/sys/ufs/ffs/ffs_vnops.c > > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message