From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751377AbaDQWPB (ORCPT ); Thu, 17 Apr 2014 18:15:01 -0400 Received: from zeniv.linux.org.uk ([195.92.253.2]:33785 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750736AbaDQWO7 (ORCPT ); Thu, 17 Apr 2014 18:14:59 -0400 Date: Thu, 17 Apr 2014 23:14:56 +0100 From: Al Viro To: "Eric W. Biederman" Cc: Linus Torvalds , "Serge E. Hallyn" , Linux-Fsdevel , Kernel Mailing List , Andy Lutomirski , Rob Landley , Miklos Szeredi , Christoph Hellwig , Karel Zak , "J. Bruce Fields" , Fengguang Wu , tytso@mit.edu Subject: Re: [GIT PULL] Detaching mounts on unlink for 3.15 Message-ID: <20140417221456.GD18016@ZenIV.linux.org.uk> References: <20140413053956.GM18016@ZenIV.linux.org.uk> <87zjjp3e7w.fsf@x220.int.ebiederm.org> <87ppkl1xb7.fsf@x220.int.ebiederm.org> <20140413215242.GP18016@ZenIV.linux.org.uk> <87y4z8uzqw.fsf_-_@x220.int.ebiederm.org> <87ppkhc4pp.fsf@x220.int.ebiederm.org> <87ha5r3emw.fsf_-_@x220.int.ebiederm.org> <20140417202237.GA18016@ZenIV.linux.org.uk> <87tx9rwsz4.fsf@x220.int.ebiederm.org> <20140417221203.GC18016@ZenIV.linux.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140417221203.GC18016@ZenIV.linux.org.uk> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Apr 17, 2014 at 11:12:03PM +0100, Al Viro wrote: > * *KERNEL* vfsmounts; anything without MNT_INTERNAL is fair game > as far as ordering of fs shutdown is concerned. If it wasn't MNT_INTERNAL, > and we'd done mntput() before destroying some data structures needed for s/before/just before/, of course ;-) > fs shutdown, we had been fucked anyway - no warranties that mntput() had > been the final one. Moreover, that means going through kern_unmount() or > simple_release_fs(). Which is trivially dealt with by providing > mntput_sync(mnt) that *will* wait and using it in those two. Again, if > we have an extra reference (e.g. stuffed into a struct file, etc.) - > we can't rely on mntput() being final.