From mckusick@mckusick.com  Wed Sep 28 00:49:53 2011
Return-Path: <mckusick@mckusick.com>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 51DAB106566B;
	Wed, 28 Sep 2011 00:49:53 +0000 (UTC)
	(envelope-from mckusick@mckusick.com)
Received: from chez.mckusick.com (chez.mckusick.com [70.36.157.235])
	by mx1.freebsd.org (Postfix) with ESMTP id 1F2888FC12;
	Wed, 28 Sep 2011 00:49:52 +0000 (UTC)
Received: from chez.mckusick.com (localhost [127.0.0.1])
	by chez.mckusick.com (8.14.3/8.14.3) with ESMTP id p8S0JVUW067163;
	Tue, 27 Sep 2011 17:19:31 -0700 (PDT)
	(envelope-from mckusick@chez.mckusick.com)
Message-Id: <201109280019.p8S0JVUW067163@chez.mckusick.com>
Date: Tue, 27 Sep 2011 17:19:31 -0700
From: Kirk McKusick <mckusick@mckusick.com>
To: Garrett Cooper <yanegomi@gmail.com>
Cc: lev@freebsd.org, freebsd-fs@freebsd.org, Xin LI <delphij@freebsd.org>,
        bug-followup@freebsd.org
In-Reply-To: <CAGH67wSvpmdmCFKxAsgLD5cGc=WcYpX=dXBkhqkePNxVNjR4=g@mail.gmail.com>
Subject: Re: PR kern/161016 Need to force sync(2) before umounting UFS1 filesystems? 

>Number:         161086
>Category:       kern
>Synopsis:       Re: kern/161016: Need to force sync(2) before umounting UFS1 filesystems?
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Sep 28 00:50:08 UTC 2011
>Closed-Date:    Wed Oct 05 05:01:17 UTC 2011
>Last-Modified:  Wed Oct 05 05:01:17 UTC 2011
>Originator:     
>Release:        
>Organization:
>Environment:
>Description:
 I have taken responsibility for working on this bug report (PR kern/161016).
 
 I propose the following change to correct it:
 
 Index: sys/kern/vfs_mount.c
 ===================================================================
 --- sys/kern/vfs_mount.c	(revision 225807)
 +++ sys/kern/vfs_mount.c	(working copy)
 @@ -1227,18 +1227,6 @@
  		mp->mnt_kern_flag |= MNTK_UNMOUNTF;
  	error = 0;
  	if (mp->mnt_lockref) {
 -		if ((flags & MNT_FORCE) == 0) {
 -			mp->mnt_kern_flag &= ~(MNTK_UNMOUNT | MNTK_NOINSMNTQ |
 -			    MNTK_UNMOUNTF);
 -			if (mp->mnt_kern_flag & MNTK_MWAIT) {
 -				mp->mnt_kern_flag &= ~MNTK_MWAIT;
 -				wakeup(mp);
 -			}
 -			MNT_IUNLOCK(mp);
 -			if (coveredvp)
 -				VOP_UNLOCK(coveredvp, 0);
 -			return (EBUSY);
 -		}
  		mp->mnt_kern_flag |= MNTK_DRAINING;
  		error = msleep(&mp->mnt_lockref, MNT_MTX(mp), PVFS,
  		    "mount drain", 0);
 
 The things to check for are:
 
 1) That it fixes the EBUSY on unmount.
 
 2) That it does not cause unmount to hang.
 
 I would appreciate feedback as to whether this fix helps.
 
 	Kirk McKusick
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: linimon 
State-Changed-When: Wed Oct 5 05:00:03 UTC 2011 
State-Changed-Why:  
Misfiled followup to kern/161016; content migrated. 


Responsible-Changed-From-To: gnats-admin->freebsd-bugs 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Wed Oct 5 05:00:03 UTC 2011 
Responsible-Changed-Why:  

http://www.freebsd.org/cgi/query-pr.cgi?pr=161086 
>Unformatted:
