Subject: CVS commit: [netbsd-1-6] syssrc/sys/ufs/lfs
To: None <source-changes@netbsd.org>
From: Todd Vierling <tv@netbsd.org>
List: source-changes
Date: 06/02/2002 18:30:33
Module Name: syssrc
Committed By: tv
Date: Sun Jun 2 15:30:32 UTC 2002
Modified Files:
syssrc/sys/ufs/lfs [netbsd-1-6]: lfs_subr.c
Log Message:
Pull up revision 1.24 (requested by perseant in ticket #132):
Back out rev 1.174 of vfs_subr.c, because the splbio() wasn't protecting
enough to be useful, and broadening it so that it did would have meant
that operations possibly requiring synchronous disk activity would have
to be done in splbio(). This clearly was not going to work.
Worked around this in the LFS case by having lfs_cluster_callback put an
extra hold on the vnode before calling biodone(), and taking the hold
off without HOLDRELE's problematic list swapping. lfs_vunref() will take
care of that---in thread context---on the next write if need be.
Also, ensure that the list walking in lfs_{writevnodes,segunlock,gather}
takes into account the possibility that the list may change
underneath it (possibly because it itself deleted an element).
Tested on i386, test-compiled on alpha.
To generate a diff of this commit:
cvs rdiff -r1.23 -r1.23.2.1 syssrc/sys/ufs/lfs/lfs_subr.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.