in *_sync(), don't skip vnodes which have (potentially dirty) pages.
This commit is contained in:
parent
40638d9f35
commit
3a5e4f901b
@ -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 @@ loop:
|
||||
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;
|
||||
}
|
||||
|
@ -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 @@ loop:
|
||||
*/
|
||||
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;
|
||||
|
@ -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 @@ loop:
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user