diff options
author | dyson <dyson@FreeBSD.org> | 1998-05-21 07:47:58 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1998-05-21 07:47:58 +0000 |
commit | d26bce6481da9a31a8c8f3681d9808a35e47dd6b (patch) | |
tree | 8ce6b62d0797844260c379f8cba69acc8dafd12a /sys/fs | |
parent | d29d2f09f459c94a799d7c3c0ca293a03bcf6021 (diff) | |
download | FreeBSD-src-d26bce6481da9a31a8c8f3681d9808a35e47dd6b.zip FreeBSD-src-d26bce6481da9a31a8c8f3681d9808a35e47dd6b.tar.gz |
Make flushing dirty pages work correctly on filesystems that
unexpectedly do not complete writes even with sync I/O requests.
This should help the behavior of mmaped files when using
softupdates (and perhaps in other circumstances also.)
Diffstat (limited to 'sys/fs')
-rw-r--r-- | sys/fs/specfs/spec_vnops.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/fs/specfs/spec_vnops.c b/sys/fs/specfs/spec_vnops.c index 82f001d..a168bc8 100644 --- a/sys/fs/specfs/spec_vnops.c +++ b/sys/fs/specfs/spec_vnops.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)spec_vnops.c 8.14 (Berkeley) 5/21/95 - * $Id: spec_vnops.c,v 1.60 1998/03/08 09:57:36 julian Exp $ + * $Id: spec_vnops.c,v 1.61 1998/04/19 23:32:26 julian Exp $ */ #include <sys/param.h> @@ -551,7 +551,8 @@ spec_strategy(ap) struct buf *bp; bp = ap->a_bp; - if ((LIST_FIRST(&bp->b_dep)) != NULL && bioops.io_start) + if (((bp->b_flags & B_READ) == 0) && + (LIST_FIRST(&bp->b_dep)) != NULL && bioops.io_start) (*bioops.io_start)(bp); (*bdevsw[major(bp->b_dev)]->d_strategy)(bp); return (0); |