summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_cluster.c
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/kern/vfs_cluster.c
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/kern/vfs_cluster.c')
-rw-r--r--sys/kern/vfs_cluster.c20
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++;
}
/*
OpenPOWER on IntegriCloud