summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_bio.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1999-06-29 05:59:47 +0000
committerpeter <peter@FreeBSD.org>1999-06-29 05:59:47 +0000
commit5f8ebc1b91d5ff4fb0e980bdd2e3d95566052f28 (patch)
tree725ca292cbc72808478d3a19f235c2a854a26054 /sys/kern/vfs_bio.c
parent0a692c6a0908a65d61a337dc88b2bbe445dd542f (diff)
downloadFreeBSD-src-5f8ebc1b91d5ff4fb0e980bdd2e3d95566052f28.zip
FreeBSD-src-5f8ebc1b91d5ff4fb0e980bdd2e3d95566052f28.tar.gz
Hopefully fix the remaining glitches with the BUF_*() changes. This should
(really this time) fix pageout to swap and a couple of clustering cases. This simplifies BUF_KERNPROC() so that it unconditionally reassigns the lock owner rather than testing B_ASYNC and having the caller decide when to do the reassign. At present this is required because some places use B_CALL/b_iodone to free the buffers without B_ASYNC being set. Also, vfs_cluster.c explicitly calls BUF_KERNPROC() when attaching the buffers rather than the parent walking the cluster_head tailq. Reviewed by: Kirk McKusick <mckusick@mckusick.com>
Diffstat (limited to 'sys/kern/vfs_bio.c')
-rw-r--r--sys/kern/vfs_bio.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c
index 3c5024e..00293be 100644
--- a/sys/kern/vfs_bio.c
+++ b/sys/kern/vfs_bio.c
@@ -11,7 +11,7 @@
* 2. Absolutely no warranty of function or purpose is made by the author
* John S. Dyson.
*
- * $Id: vfs_bio.c,v 1.217 1999/06/26 14:46:35 peter Exp $
+ * $Id: vfs_bio.c,v 1.218 1999/06/28 15:32:10 peter Exp $
*/
/*
@@ -517,7 +517,8 @@ bwrite(struct buf * bp)
if (curproc != NULL)
curproc->p_stats->p_ru.ru_oublock++;
splx(s);
- BUF_KERNPROC(bp);
+ if (oldflags & B_ASYNC)
+ BUF_KERNPROC(bp);
VOP_STRATEGY(bp->b_vp, bp);
/*
OpenPOWER on IntegriCloud