summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1998-10-31 07:42:04 +0000
committerpeter <peter@FreeBSD.org>1998-10-31 07:42:04 +0000
commitc9ebff45d03b2e60c25849990936ef4b3bae0483 (patch)
tree6bd6d0c74b3f6041e2ceac7415d3642cf0f32325 /sys/kern
parentfa87de8247e8a901afbdb4b1bdbb229424f7e3cb (diff)
downloadFreeBSD-src-c9ebff45d03b2e60c25849990936ef4b3bae0483.zip
FreeBSD-src-c9ebff45d03b2e60c25849990936ef4b3bae0483.tar.gz
The last argument to vm_object_page_clean() are now bit flags, rather than
the old true/false. While here, have vfs_msync() only call vm_object_page_clean() with OBJPC_SYNC if called with MNT_WAIT flags. vfs_msync() is called at unmount time (with MNT_WAIT) and from the syncer process (formerly update). This should make dirty mmap writebacks a little less nasty. I have tested this a little with SOFTUPDATES enabled, but I don't normally use it since I've been badly burned too many times.
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/vfs_export.c4
-rw-r--r--sys/kern/vfs_extattr.c4
-rw-r--r--sys/kern/vfs_subr.c4
-rw-r--r--sys/kern/vfs_syscalls.c4
4 files changed, 8 insertions, 8 deletions
diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c
index 6e866b5..b751b92 100644
--- a/sys/kern/vfs_export.c
+++ b/sys/kern/vfs_export.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95
- * $Id: vfs_subr.c,v 1.170 1998/10/29 09:51:27 peter Exp $
+ * $Id: vfs_subr.c,v 1.171 1998/10/29 11:50:32 bde Exp $
*/
/*
@@ -2467,7 +2467,7 @@ loop:
if (!vget(vp,
LK_INTERLOCK | LK_EXCLUSIVE | LK_RETRY | LK_NOOBJ, curproc)) {
if (vp->v_object) {
- vm_object_page_clean(vp->v_object, 0, 0, TRUE);
+ vm_object_page_clean(vp->v_object, 0, 0, flags == MNT_WAIT ? OBJPC_SYNC : 0);
anyio = 1;
}
vput(vp);
diff --git a/sys/kern/vfs_extattr.c b/sys/kern/vfs_extattr.c
index ec543ab..4cf124f 100644
--- a/sys/kern/vfs_extattr.c
+++ b/sys/kern/vfs_extattr.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_syscalls.c 8.13 (Berkeley) 4/15/94
- * $Id: vfs_syscalls.c,v 1.106 1998/09/10 02:27:52 tegge Exp $
+ * $Id: vfs_syscalls.c,v 1.107 1998/09/24 15:02:46 luoqi Exp $
*/
/* For 4.3 integer FS ID compatibility */
@@ -2410,7 +2410,7 @@ fsync(p, uap)
vp = (struct vnode *)fp->f_data;
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
if (vp->v_object)
- vm_object_page_clean(vp->v_object, 0, 0, FALSE);
+ vm_object_page_clean(vp->v_object, 0, 0, 0);
if ((error = VOP_FSYNC(vp, fp->f_cred, MNT_WAIT, p)) == 0 &&
vp->v_mount && (vp->v_mount->mnt_flag & MNT_SOFTDEP) &&
bioops.io_fsync)
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 6e866b5..b751b92 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95
- * $Id: vfs_subr.c,v 1.170 1998/10/29 09:51:27 peter Exp $
+ * $Id: vfs_subr.c,v 1.171 1998/10/29 11:50:32 bde Exp $
*/
/*
@@ -2467,7 +2467,7 @@ loop:
if (!vget(vp,
LK_INTERLOCK | LK_EXCLUSIVE | LK_RETRY | LK_NOOBJ, curproc)) {
if (vp->v_object) {
- vm_object_page_clean(vp->v_object, 0, 0, TRUE);
+ vm_object_page_clean(vp->v_object, 0, 0, flags == MNT_WAIT ? OBJPC_SYNC : 0);
anyio = 1;
}
vput(vp);
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c
index ec543ab..4cf124f 100644
--- a/sys/kern/vfs_syscalls.c
+++ b/sys/kern/vfs_syscalls.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)vfs_syscalls.c 8.13 (Berkeley) 4/15/94
- * $Id: vfs_syscalls.c,v 1.106 1998/09/10 02:27:52 tegge Exp $
+ * $Id: vfs_syscalls.c,v 1.107 1998/09/24 15:02:46 luoqi Exp $
*/
/* For 4.3 integer FS ID compatibility */
@@ -2410,7 +2410,7 @@ fsync(p, uap)
vp = (struct vnode *)fp->f_data;
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
if (vp->v_object)
- vm_object_page_clean(vp->v_object, 0, 0, FALSE);
+ vm_object_page_clean(vp->v_object, 0, 0, 0);
if ((error = VOP_FSYNC(vp, fp->f_cred, MNT_WAIT, p)) == 0 &&
vp->v_mount && (vp->v_mount->mnt_flag & MNT_SOFTDEP) &&
bioops.io_fsync)
OpenPOWER on IntegriCloud