From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Kent Subject: Re: sys_umount() returns EBUSY when doing: sh -c "mount /dev/sdc1 /mnt; umount /mnt" Date: Tue, 16 Mar 2010 14:53:31 +0800 Message-ID: <1268722411.2269.34.camel@localhost> References: <38b2ab8a1003130056u4b025839i556a797ccad894de@mail.gmail.com> <38b2ab8a1003131230q469158b3qd7dcb9f880ea68e1@mail.gmail.com> <20100315163454.GV30031@ZenIV.linux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Cc: Andreas Dilger , Francis Moreau , linux-fsdevel@vger.kernel.org To: Al Viro Return-path: Received: from out2.smtp.messagingengine.com ([66.111.4.26]:37680 "EHLO out2.smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757619Ab0CPGxh (ORCPT ); Tue, 16 Mar 2010 02:53:37 -0400 In-Reply-To: <20100315163454.GV30031@ZenIV.linux.org.uk> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Mon, 2010-03-15 at 16:34 +0000, Al Viro wrote: > On Mon, Mar 15, 2010 at 10:04:46AM -0600, Andreas Dilger wrote: > > On 2010-03-13, at 13:30, Francis Moreau wrote: > > >I've some shell scripts which try to find out the filesystem hosted by > > >a block device. > > > > > >They basically do this: > > > > > > mount /dev/sdc1 /mnt > > > fs=$(stat -f -c %T $mount_point) > > > umount /mnt > > > > Mounting an in-use filesystem is a bad idea. > > Huh? mount() will happily create another vfsmount refering to the same > superblock in that case. It *is* OK to mount the same block device twice; > any fs that uses get_sb_bdev() will DTRT. > > It should be safe. The lack of error checking after mount, OTOH, is not. I started seeing similar behavior in autofs after the pnode patches went in. I was never able to decide if I was doing something wrong or if there had been some latency in reducing reference counts introduced. Also, I couldn't see anything in the kernel code that that even looked like it would cause this so I didn't see any use in reporting it. Instead I began using a retry loop with a short delay when umounting mounts. Ian