Date: Tue, 2 Mar 1999 08:32:18 -0800 (PST) From: Julian Elischer <julian@whistle.com> To: Kirk McKusick <mckusick@FreeBSD.org> 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 Message-ID: <Pine.BSF.3.95.990302083122.19823A-100000@current1.whistle.com> In-Reply-To: <199903020404.UAA27314@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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 <dillon@apollo.backplane.com> > > 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.95.990302083122.19823A-100000>