From 4e83f749ece7aef2fdb53e474639440435b1778d Mon Sep 17 00:00:00 2001 From: David Greenman Date: Sat, 18 Mar 1995 18:03:29 +0000 Subject: [PATCH] Don't sync the inode date changes of character special devices during the FS sync. The system would appear to hang momentarily if there was a large backlog of I/O. This is because the vnode remains locked during the output - preventing normal character I/O. The problem was exacerbated by the FFS contiguous block allocation fixes and a semi-broken disksort(). The inode/date will still be synced during a normal FS dismount and whenever the inode is changed for other reasons. --- sys/ufs/ffs/ffs_vfsops.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index be81fcd4fb10..aeb074fbcc11 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)ffs_vfsops.c 8.8 (Berkeley) 4/18/94 - * $Id: ffs_vfsops.c,v 1.12 1994/11/14 13:21:42 bde Exp $ + * $Id: ffs_vfsops.c,v 1.13 1995/03/16 18:16:41 bde Exp $ */ #include @@ -663,8 +663,8 @@ ffs_sync(mp, waitfor, cred, p) if (VOP_ISLOCKED(vp)) continue; ip = VTOI(vp); - if ((ip->i_flag & - (IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE)) == 0 && + if (((vp->v_type == VCHR) || ((ip->i_flag & + (IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE)) == 0)) && vp->v_dirtyblkhd.lh_first == NULL) continue; if (vget(vp, 1))