From 79c365e60e9ce69a5d656ed3fa5da2c9fbe146a7 Mon Sep 17 00:00:00 2001 From: chs Date: Sun, 17 Mar 2002 23:58:09 +0000 Subject: [PATCH] don't do any flush-behind for async mounts. this matches the traditional behaviour. --- sys/msdosfs/msdosfs_vnops.c | 8 +++++--- sys/ufs/ext2fs/ext2fs_readwrite.c | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/sys/msdosfs/msdosfs_vnops.c b/sys/msdosfs/msdosfs_vnops.c index 7d86bd148410..c2929ff4acaa 100644 --- a/sys/msdosfs/msdosfs_vnops.c +++ b/sys/msdosfs/msdosfs_vnops.c @@ -1,4 +1,4 @@ -/* $NetBSD: msdosfs_vnops.c,v 1.120 2002/03/08 22:07:53 jdolecek Exp $ */ +/* $NetBSD: msdosfs_vnops.c,v 1.121 2002/03/17 23:58:09 chs Exp $ */ /*- * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank. @@ -48,7 +48,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: msdosfs_vnops.c,v 1.120 2002/03/08 22:07:53 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: msdosfs_vnops.c,v 1.121 2002/03/17 23:58:09 chs Exp $"); #include #include @@ -562,6 +562,7 @@ msdosfs_write(v) struct denode *dep = VTODE(vp); struct msdosfsmount *pmp = dep->de_pmp; struct ucred *cred = ap->a_cred; + boolean_t async; #ifdef MSDOSFS_DEBUG printf("msdosfs_write(vp %p, uio %p, ioflag %x, cred %p\n", @@ -611,6 +612,7 @@ msdosfs_write(v) /* * Remember some values in case the write fails. */ + async = vp->v_mount->mnt_flag & MNT_ASYNC; resid = uio->uio_resid; osize = dep->de_FileSize; @@ -647,7 +649,7 @@ msdosfs_write(v) * XXXUBC simplistic async flushing. */ - if (oldoff >> 16 != uio->uio_offset >> 16) { + if (!async && oldoff >> 16 != uio->uio_offset >> 16) { simple_lock(&vp->v_interlock); error = VOP_PUTPAGES(vp, (oldoff >> 16) << 16, (uio->uio_offset >> 16) << 16, PGO_CLEANIT); diff --git a/sys/ufs/ext2fs/ext2fs_readwrite.c b/sys/ufs/ext2fs/ext2fs_readwrite.c index b9fc8501b2d0..8c0ea7f30896 100644 --- a/sys/ufs/ext2fs/ext2fs_readwrite.c +++ b/sys/ufs/ext2fs/ext2fs_readwrite.c @@ -1,4 +1,4 @@ -/* $NetBSD: ext2fs_readwrite.c,v 1.22 2001/11/30 07:05:54 chs Exp $ */ +/* $NetBSD: ext2fs_readwrite.c,v 1.23 2002/03/17 23:58:10 chs Exp $ */ /*- * Copyright (c) 1997 Manuel Bouyer. @@ -38,7 +38,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ext2fs_readwrite.c,v 1.22 2001/11/30 07:05:54 chs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ext2fs_readwrite.c,v 1.23 2002/03/17 23:58:10 chs Exp $"); #include #include @@ -211,6 +211,7 @@ ext2fs_write(v) vsize_t bytelen; void *win; off_t oldoff; + boolean_t async; ioflag = ap->a_ioflag; uio = ap->a_uio; @@ -258,6 +259,7 @@ ext2fs_write(v) return (EFBIG); } + async = vp->v_mount->mnt_flag & MNT_ASYNC; resid = uio->uio_resid; osize = ip->i_e2fs_size; @@ -295,7 +297,7 @@ ext2fs_write(v) * XXXUBC simplistic async flushing. */ - if (oldoff >> 16 != uio->uio_offset >> 16) { + if (!async && oldoff >> 16 != uio->uio_offset >> 16) { simple_lock(&vp->v_interlock); error = VOP_PUTPAGES(vp, (oldoff >> 16) << 16, (uio->uio_offset >> 16) << 16, PGO_CLEANIT);