From owner-freebsd-bugs Thu Jul 2 09:51:18 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id JAA26382 for freebsd-bugs-outgoing; Thu, 2 Jul 1998 09:51:18 -0700 (PDT) (envelope-from owner-freebsd-bugs@FreeBSD.ORG) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id JAA26372 for ; Thu, 2 Jul 1998 09:51:15 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.8.8/8.8.5) id JAA10517; Thu, 2 Jul 1998 09:50:01 -0700 (PDT) Received: (from nobody@localhost) by hub.freebsd.org (8.8.8/8.8.8) id JAA25754; Thu, 2 Jul 1998 09:44:47 -0700 (PDT) (envelope-from nobody) Message-Id: <199807021644.JAA25754@hub.freebsd.org> Date: Thu, 2 Jul 1998 09:44:47 -0700 (PDT) From: paul@mu.org To: freebsd-gnats-submit@FreeBSD.ORG X-Send-Pr-Version: www-1.0 Subject: kern/7147: fix for PR7089 Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >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