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