From owner-freebsd-fs@FreeBSD.ORG Wed Jul 24 03:31:33 2013 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 69D282A9 for ; Wed, 24 Jul 2013 03:31:33 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from smtpauth2.wiscmail.wisc.edu (wmauth2.doit.wisc.edu [144.92.197.222]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 47A412602 for ; Wed, 24 Jul 2013 03:31:32 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII Received: from avs-daemon.smtpauth2.wiscmail.wisc.edu by smtpauth2.wiscmail.wisc.edu (Oracle Communications Messaging Server 7u4-27.01(7.0.4.27.0) 64bit (built Aug 30 2012)) id <0MQF0070082L4B00@smtpauth2.wiscmail.wisc.edu> for freebsd-fs@freebsd.org; Tue, 23 Jul 2013 22:31:32 -0500 (CDT) X-Spam-PmxInfo: Server=avs-2, Version=6.0.3.2322014, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2013.7.24.32122, SenderIP=0.0.0.0 X-Spam-Report: AuthenticatedSender=yes, SenderIP=0.0.0.0 Received: from wanderer.tachypleus.net (adsl-76-208-67-185.dsl.mdsnwi.sbcglobal.net [76.208.67.185]) by smtpauth2.wiscmail.wisc.edu (Oracle Communications Messaging Server 7u4-27.01(7.0.4.27.0) 64bit (built Aug 30 2012)) with ESMTPSA id <0MQF00NHM8GJ3120@smtpauth2.wiscmail.wisc.edu> for freebsd-fs@freebsd.org; Tue, 23 Jul 2013 22:31:32 -0500 (CDT) Message-id: <51EF4A92.1090203@freebsd.org> Date: Tue, 23 Jul 2013 22:31:30 -0500 From: Nathan Whitehorn User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130710 Thunderbird/17.0.7 To: freebsd-fs@freebsd.org Subject: Bug in FUSE unmounting X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Jul 2013 03:31:33 -0000 I ran across a bug in our FUSE port today. The unmount code in libfuse (mount_bsd.c) uses umount -f to unmount a file system. To do this, it looks up the device name corresponding to the process's communication file descriptor, calls getdevname() on it, and then passes that to umount. The problem here is that the device is always /dev/fuse (it seems to assume there is a number on the end) and, as a result, it will forcibly unmount *all* FUSE systems when trying just to unmount one. Using the mountpoint instead seems to work for me, but a better solution is called for. -Nathan