diff options
author | dyson <dyson@FreeBSD.org> | 1997-06-15 17:56:53 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1997-06-15 17:56:53 +0000 |
commit | eb8e1f5e4ef9200ddb9a6b5da00a52e14013f8f8 (patch) | |
tree | eeee2fc9d75d47696a1cced34c51c39d48b94baa /sys/kern/vfs_cluster.c | |
parent | d85a7bf572a5808b870fb2878eb9b8674bb321e2 (diff) | |
download | FreeBSD-src-eb8e1f5e4ef9200ddb9a6b5da00a52e14013f8f8.zip FreeBSD-src-eb8e1f5e4ef9200ddb9a6b5da00a52e14013f8f8.tar.gz |
Fix a problem with the VN device. Specifically, the VN device can
cause a problem of spiraling death due to buffer resource limitations.
The vfs_bio code in general had little ability to handle buffer resource
management, and now it does. Also, there are a lot more knobs for tuning the
vfs_bio code now. The knobs came free because of the need that there
always be some immediately available buffers (non-delayed or locked) for
use. Note that the buffer cache code is much less likely to get bogged
down with lots of delayed writes, even more so than before.
Diffstat (limited to 'sys/kern/vfs_cluster.c')
-rw-r--r-- | sys/kern/vfs_cluster.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/vfs_cluster.c b/sys/kern/vfs_cluster.c index 740cc2c..5f926b9 100644 --- a/sys/kern/vfs_cluster.c +++ b/sys/kern/vfs_cluster.c @@ -33,7 +33,7 @@ * SUCH DAMAGE. * * @(#)vfs_cluster.c 8.7 (Berkeley) 2/13/94 - * $Id: vfs_cluster.c,v 1.45 1997/04/18 14:12:17 dfr Exp $ + * $Id: vfs_cluster.c,v 1.46 1997/04/25 11:14:00 dfr Exp $ */ #include <sys/param.h> @@ -725,6 +725,7 @@ cluster_wbuild(vp, size, start_lbn, len) bp->b_bcount += size; bp->b_bufsize += size; + --numdirtybuffers; tbp->b_flags &= ~(B_READ | B_DONE | B_ERROR | B_DELWRI); tbp->b_flags |= B_ASYNC; s = splbio(); |