summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_cluster.c
diff options
context:
space:
mode:
authortegge <tegge@FreeBSD.org>2006-09-26 04:15:59 +0000
committertegge <tegge@FreeBSD.org>2006-09-26 04:15:59 +0000
commitf42473d76b149849661d41c1f44a36dd01096d40 (patch)
tree3bc9361221d5a734023278052dddd20fb2025bee /sys/kern/vfs_cluster.c
parentb500b0ae92746b6a7309c0f88afadb7c588fd859 (diff)
downloadFreeBSD-src-f42473d76b149849661d41c1f44a36dd01096d40.zip
FreeBSD-src-f42473d76b149849661d41c1f44a36dd01096d40.tar.gz
Add mnt_noasync counter to better handle interleaved calls to nmount(),
sync() and sync_fsync() without losing MNT_ASYNC. Add MNTK_ASYNC flag which is set only when MNT_ASYNC is set and mnt_noasync is zero, and check that flag instead of MNT_ASYNC before initiating async io.
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 b749f56..4c2cfaf 100644
--- a/sys/kern/vfs_cluster.c
+++ b/sys/kern/vfs_cluster.c
@@ -595,7 +595,7 @@ cluster_write(struct vnode *vp, struct buf *bp, u_quad_t filesize, int seqcount)
int async;
if (vp->v_type == VREG) {
- async = vp->v_mount->mnt_flag & MNT_ASYNC;
+ async = vp->v_mount->mnt_kern_flag & MNTK_ASYNC;
lblocksize = vp->v_mount->mnt_stat.f_iosize;
} else {
async = 0;
OpenPOWER on IntegriCloud