Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Jul 1998 19:00:01 -0700 (PDT)
From:      Paul Saab <paul@mu.org>
To:        freebsd-bugs@FreeBSD.ORG
Subject:   Re: kern/7147: fix for PR7089
Message-ID:  <199807030200.TAA29327@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/7147; it has been noted by GNATS.

From: Paul Saab <paul@mu.org>
To: freebsd-gnats-submit@FreeBSD.ORG
Cc:  Subject: Re: kern/7147: fix for PR7089
Date: Thu, 2 Jul 1998 20:53:10 -0500

 here is a patch for stable
 
 Index: vfs_syscalls.c
 ===================================================================
 RCS file: /usr/cvs/src/sys/kern/vfs_syscalls.c,v
 retrieving revision 1.51.2.6
 diff -u -r1.51.2.6 vfs_syscalls.c
 --- vfs_syscalls.c	1997/10/23 18:04:55	1.51.2.6
 +++ vfs_syscalls.c	1998/07/02 17:04:41
 @@ -291,6 +291,7 @@
  {
  	struct vnode *coveredvp;
  	int error;
 +	int async_flag;
  
  	coveredvp = mp->mnt_vnodecovered;
  	if (vfs_busy(mp))
 @@ -303,6 +304,7 @@
  		return (error);
  	}
  
 +	async_flag = mp->mnt_flag & MNT_ASYNC;
  	mp->mnt_flag &=~ MNT_ASYNC;
  	vfs_msync(mp, MNT_NOWAIT);
  	vnode_pager_umount(mp);	/* release cached vnodes */
 @@ -311,6 +313,7 @@
  	    (flags & MNT_FORCE))
  		error = VFS_UNMOUNT(mp, flags, p);
  	mp->mnt_flag &= ~MNT_UNMOUNT;
 +	mp->mnt_flag |= async_flag;
  	vfs_unbusy(mp);
  	if (error) {
  		vfs_unlock(mp);
 
 paul@mu.org (paul@mu.org) wrote:
 > 
 > >Number:         7147
 > >Category:       kern
 > >Synopsis:       fix for PR7089
 > >Confidential:   no
 > >Severity:       serious
 > >Priority:       medium
 > >Responsible:    freebsd-bugs
 > >State:          open
 > >Quarter:
 > >Keywords:
 > >Date-Required:
 > >Class:          sw-bug
 > >Submitter-Id:   current-users
 > >Arrival-Date:   Thu Jul  2 09:50:01 PDT 1998
 > >Last-Modified:
 > >Originator:     Paul Saab
 > >Organization:
 > >Release:        current
 > >Environment:
 > FreeBSD yoda.yogurt.org 3.0-980621-SNAP FreeBSD 3.0-980621-SNAP #2: Thu Jul  2 11:26:15 MDT 1998     root@yoda.yogurt.org:/usr/src/sys/compile/LOCAL  i386
 > >Description:
 > 
 > >How-To-Repeat:
 > 
 > >Fix:
 > Index: vfs_syscalls.c
 > ===================================================================
 > RCS file: /usr/cvs/src/sys/kern/vfs_syscalls.c,v
 > retrieving revision 1.103
 > diff -u -r1.103 vfs_syscalls.c
 > --- vfs_syscalls.c      1998/06/08 18:18:28     1.103
 > +++ vfs_syscalls.c      1998/07/02 16:42:56
 > @@ -435,6 +435,7 @@
 >  {
 >         struct vnode *coveredvp;
 >         int error;
 > +       int async_flag;
 > 
 >         simple_lock(&mountlist_slock);
 >         mp->mnt_kern_flag |= MNTK_UNMOUNT;
 > @@ -444,6 +445,7 @@
 >                 vfs_setpublicfs(NULL, NULL, NULL);
 > 
 >         vfs_msync(mp, MNT_WAIT);
 > +       async_flag = mp->mnt_flag & MNT_ASYNC;
 >         mp->mnt_flag &=~ MNT_ASYNC;
 >         cache_purgevfs(mp);     /* remove cache entries for this file sys */
 >         if (mp->mnt_syncer != NULL)
 > @@ -457,6 +459,7 @@
 >                 if ((mp->mnt_flag & MNT_RDONLY) == 0 && mp->mnt_syncer == NULL)
 >                         (void) vfs_allocate_syncvnode(mp);
 >                 mp->mnt_kern_flag &= ~MNTK_UNMOUNT;
 > +               mp->mnt_flag |= async_flag;
 >                 lockmgr(&mp->mnt_lock, LK_RELEASE | LK_INTERLOCK | LK_REENABLE,
 >                     &mountlist_slock, p);
 >                 return (error);
 > >Audit-Trail:
 > >Unformatted:
 > 
 > To Unsubscribe: send mail to majordomo@FreeBSD.org
 > with "unsubscribe freebsd-bugs" in the body of the message

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199807030200.TAA29327>