summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_cluster.c
diff options
context:
space:
mode:
authordillon <dillon@FreeBSD.org>2001-11-05 18:48:54 +0000
committerdillon <dillon@FreeBSD.org>2001-11-05 18:48:54 +0000
commit1147eaf58a59e2d2aa15fb9395dc939c237e6269 (patch)
treede03e156782fad9ffef4684a7cf3f1908967e835 /sys/kern/vfs_cluster.c
parent815c903d62ca6edef2915e089d29443365138986 (diff)
downloadFreeBSD-src-1147eaf58a59e2d2aa15fb9395dc939c237e6269.zip
FreeBSD-src-1147eaf58a59e2d2aa15fb9395dc939c237e6269.tar.gz
Implement IO_NOWDRAIN and B_NOWDRAIN - prevents the buffer cache from blocking
in wdrain during a write. This flag needs to be used in devices whos strategy routines turn-around and issue another high level I/O, such as when MD turns around and issues a VOP_WRITE to vnode backing store, in order to avoid deadlocking the dirty buffer draining code. Remove a vprintf() warning from MD when the backing vnode is found to be in-use. The syncer of buf_daemon could be flushing the backing vnode at the time of an MD operation so the warning is not correct. MFC after: 1 week
Diffstat (limited to 'sys/kern/vfs_cluster.c')
-rw-r--r--sys/kern/vfs_cluster.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/vfs_cluster.c b/sys/kern/vfs_cluster.c
index 0af9fed..ff1176a 100644
--- a/sys/kern/vfs_cluster.c
+++ b/sys/kern/vfs_cluster.c
@@ -836,7 +836,7 @@ cluster_wbuild(vp, size, start_lbn, len)
bp->b_data = (char *)((vm_offset_t)bp->b_data |
((vm_offset_t)tbp->b_data & PAGE_MASK));
bp->b_flags |= B_CLUSTER |
- (tbp->b_flags & (B_VMIO | B_NEEDCOMMIT));
+ (tbp->b_flags & (B_VMIO | B_NEEDCOMMIT | B_NOWDRAIN));
bp->b_iodone = cluster_callback;
pbgetvp(vp, bp);
/*
OpenPOWER on IntegriCloud