diff options
author | peter <peter@FreeBSD.org> | 1998-10-31 07:42:04 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1998-10-31 07:42:04 +0000 |
commit | c9ebff45d03b2e60c25849990936ef4b3bae0483 (patch) | |
tree | 6bd6d0c74b3f6041e2ceac7415d3642cf0f32325 /sys/kern | |
parent | fa87de8247e8a901afbdb4b1bdbb229424f7e3cb (diff) | |
download | FreeBSD-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.c | 4 | ||||
-rw-r--r-- | sys/kern/vfs_extattr.c | 4 | ||||
-rw-r--r-- | sys/kern/vfs_subr.c | 4 | ||||
-rw-r--r-- | sys/kern/vfs_syscalls.c | 4 |
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) |