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>
index | next in thread | raw e-mail
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
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199807030200.TAA29327>
