Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys in *_sync(), don't skip vnodes which have (potentially d...
details: https://anonhg.NetBSD.org/src/rev/845d165ae6ae
branches: trunk
changeset: 500355:845d165ae6ae
user: chs <chs%NetBSD.org@localhost>
date: Sun Dec 10 19:36:31 2000 +0000
description:
in *_sync(), don't skip vnodes which have (potentially dirty) pages.
diffstat:
sys/msdosfs/msdosfs_vfsops.c | 9 +++++----
sys/nfs/nfs_vfsops.c | 7 ++++---
sys/ufs/ext2fs/ext2fs_vfsops.c | 7 ++++---
3 files changed, 13 insertions(+), 10 deletions(-)
diffs (68 lines):
diff -r 5bea7eb5830d -r 845d165ae6ae sys/msdosfs/msdosfs_vfsops.c
--- a/sys/msdosfs/msdosfs_vfsops.c Sun Dec 10 19:33:02 2000 +0000
+++ b/sys/msdosfs/msdosfs_vfsops.c Sun Dec 10 19:36:31 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: msdosfs_vfsops.c,v 1.71 2000/11/27 08:39:47 chs Exp $ */
+/* $NetBSD: msdosfs_vfsops.c,v 1.72 2000/12/10 19:36:31 chs Exp $ */
/*-
* Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank.
@@ -896,10 +896,11 @@
simple_lock(&vp->v_interlock);
nvp = vp->v_mntvnodes.le_next;
dep = VTODE(vp);
- if (vp->v_type == VNON || (((dep->de_flag &
+ if (waitfor == MNT_LAZY || vp->v_type == VNON ||
+ (((dep->de_flag &
(DE_ACCESS | DE_CREATE | DE_UPDATE | DE_MODIFIED)) == 0) &&
- (vp->v_dirtyblkhd.lh_first == NULL ||
- waitfor == MNT_LAZY))) {
+ (LIST_EMPTY(&vp->v_dirtyblkhd) &&
+ vp->v_uvm.u_obj.uo_npages == 0))) {
simple_unlock(&vp->v_interlock);
continue;
}
diff -r 5bea7eb5830d -r 845d165ae6ae sys/nfs/nfs_vfsops.c
--- a/sys/nfs/nfs_vfsops.c Sun Dec 10 19:33:02 2000 +0000
+++ b/sys/nfs/nfs_vfsops.c Sun Dec 10 19:36:31 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: nfs_vfsops.c,v 1.97 2000/11/27 08:39:50 chs Exp $ */
+/* $NetBSD: nfs_vfsops.c,v 1.98 2000/12/10 19:36:32 chs Exp $ */
/*
* Copyright (c) 1989, 1993, 1995
@@ -879,8 +879,9 @@
*/
if (vp->v_mount != mp)
goto loop;
- if (VOP_ISLOCKED(vp) || vp->v_dirtyblkhd.lh_first == NULL ||
- waitfor == MNT_LAZY)
+ if (waitfor == MNT_LAZY || VOP_ISLOCKED(vp) ||
+ (LIST_EMPTY(&vp->v_dirtyblkhd) &&
+ vp->v_uvm.u_obj.uo_npages == 0))
continue;
if (vget(vp, LK_EXCLUSIVE))
goto loop;
diff -r 5bea7eb5830d -r 845d165ae6ae sys/ufs/ext2fs/ext2fs_vfsops.c
--- a/sys/ufs/ext2fs/ext2fs_vfsops.c Sun Dec 10 19:33:02 2000 +0000
+++ b/sys/ufs/ext2fs/ext2fs_vfsops.c Sun Dec 10 19:36:31 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ext2fs_vfsops.c,v 1.40 2000/11/27 08:39:53 chs Exp $ */
+/* $NetBSD: ext2fs_vfsops.c,v 1.41 2000/12/10 19:36:32 chs Exp $ */
/*
* Copyright (c) 1997 Manuel Bouyer.
@@ -778,10 +778,11 @@
simple_lock(&vp->v_interlock);
nvp = LIST_NEXT(vp, v_mntvnodes);
ip = VTOI(vp);
- if (vp->v_type == VNON ||
+ if (waitfor == MNT_LAZY || vp->v_type == VNON ||
((ip->i_flag &
(IN_ACCESS | IN_CHANGE | IN_UPDATE | IN_MODIFIED | IN_ACCESSED)) == 0 &&
- LIST_EMPTY(&vp->v_dirtyblkhd)))
+ LIST_EMPTY(&vp->v_dirtyblkhd) &&
+ vp->v_uvm.u_obj.uo_npages == 0))
{
simple_unlock(&vp->v_interlock);
continue;
Home |
Main Index |
Thread Index |
Old Index