diff options
author | peter <peter@FreeBSD.org> | 1999-06-29 05:59:47 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1999-06-29 05:59:47 +0000 |
commit | 5f8ebc1b91d5ff4fb0e980bdd2e3d95566052f28 (patch) | |
tree | 725ca292cbc72808478d3a19f235c2a854a26054 /sys/kern/vfs_bio.c | |
parent | 0a692c6a0908a65d61a337dc88b2bbe445dd542f (diff) | |
download | FreeBSD-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.c | 5 |
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); /* |