Subject: CVS commit: [netbsd-1-6] src/sys/ufs/ffs
To: None <source-changes@netbsd.org>
From: Matthias Scheler <tron@netbsd.org>
List: source-changes
Date: 01/06/2003 00:10:51
Module Name:	src
Committed By:	tron
Date:		Sun Jan  5 22:10:47 UTC 2003

Modified Files:
	src/sys/ufs/ffs [netbsd-1-6]: ffs_softdep.c

Log Message:
Pull up revision 1.38 (via patch, requested by chs in ticket #1053):
several bugs:
 - move calls to softdep_setup_pagecache() (which can sleep to allocate
   memory) outside the softdep lock.
 - replace the softdep_flush_indir() hack (which tries to find another
   vnode to fsync when we are holding lots of buffer-cache buffers locked
   for long periods of time) with softdep_trackbufs() (which just kicks
   the syncer and sleeps under the same circumstances).  the former method
   had a lock-ordering problem which would occasionally deadlock.
 - relax the assertion in softdep_sync_metadata() which says that we should
   never see D_ALLOCDIRECT deps for VREG vnodes.  it's ok to see those
   attached to indirect blocks.
also, there's no need to splbio() while allocating the buffer headers
to which pagecache dependencies are attached, so remove that.
fixes all the problems in PR 19288.


To generate a diff of this commit:
cvs rdiff -r1.31 -r1.31.6.1 src/sys/ufs/ffs/ffs_softdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.