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/kern/vfs_cluster.c | |
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/kern/vfs_cluster.c')
-rw-r--r-- | sys/kern/vfs_cluster.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/sys/kern/vfs_cluster.c b/sys/kern/vfs_cluster.c index 128940c..079c4da 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.60 1998/03/19 22:48:13 dyson Exp $ + * $Id: vfs_cluster.c,v 1.61 1998/05/01 16:29:27 bde Exp $ */ #include "opt_debug_cluster.h" @@ -243,19 +243,15 @@ single_block_read: * handle the synchronous read */ if (bp) { - if (bp->b_flags & (B_DONE | B_DELWRI)) { - panic("cluster_read: DONE bp"); - } else { #if defined(CLUSTERDEBUG) - if (rcluster) - printf("S(%d,%d,%d) ", - bp->b_lblkno, bp->b_bcount, seqcount); + if (rcluster) + printf("S(%d,%d,%d) ", + bp->b_lblkno, bp->b_bcount, seqcount); #endif - if ((bp->b_flags & B_CLUSTER) == 0) - vfs_busy_pages(bp, 0); - error = VOP_STRATEGY(bp); - curproc->p_stats->p_ru.ru_inblock++; - } + if ((bp->b_flags & B_CLUSTER) == 0) + vfs_busy_pages(bp, 0); + error = VOP_STRATEGY(bp); + curproc->p_stats->p_ru.ru_inblock++; } /* |