Subject: CVS commit: [netbsd-1-6] src/sys/ufs/ffs
To: None <firstname.lastname@example.org>
From: Matthias Scheler <email@example.com>
Date: 01/06/2003 00:10:51
Module Name: src
Committed By: tron
Date: Sun Jan 5 22:10:47 UTC 2003
src/sys/ufs/ffs [netbsd-1-6]: ffs_softdep.c
Pull up revision 1.38 (via patch, requested by chs in ticket #1053):
- 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 -r188.8.131.52 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.