summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1998-05-21 07:47:58 +0000
committerdyson <dyson@FreeBSD.org>1998-05-21 07:47:58 +0000
commitd26bce6481da9a31a8c8f3681d9808a35e47dd6b (patch)
tree8ce6b62d0797844260c379f8cba69acc8dafd12a /sys/fs
parentd29d2f09f459c94a799d7c3c0ca293a03bcf6021 (diff)
downloadFreeBSD-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.c5
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);
OpenPOWER on IntegriCloud