Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp7218212ybf; Fri, 6 Mar 2020 12:46:03 -0800 (PST) X-Google-Smtp-Source: ADFU+vtnCjDoT1nZA+PdLXRYq0HGWvvmrvmaNKspMf5AiWZjcDexQ9EIVY2J7HmrXvFtI6pvgauR X-Received: by 2002:aca:3542:: with SMTP id c63mr3933446oia.135.1583527563454; Fri, 06 Mar 2020 12:46:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583527563; cv=none; d=google.com; s=arc-20160816; b=Sh/CWim6u+Gw3zGexP2NvsAFdVGrXHwPMKWYodCpJb6n9GoVsnMn7pOruuzMeMAy4g OmVLP+lJ4uzCBl3IuwBviotTsIY4rDDXqlIE2AE34tzMWKlegKocZF/Ij57kL5kABbIB moNZAcL9WrvQmnLCJsbFgnNbn4qsuaWDilJ4X26HfzlV6yL0MHgvbklJzoCRd8+QH0ei vYo7B78ErxQw1d4xfUXVGGxYH7FIJkQh8nHs6txEGf4LbqmGbrrmDjAQoBk6zj3EhdSZ rvNc7riJFDztailx2b71YUoGtapBBQyfVcTchRRw6Oxhsb1dpgNRoAsLHLrdcYXNEEXC DiSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=yO/OtjDfRZ0wAP/Jx83PJ3pKQggBtqyFsw6C74HuIqY=; b=zzlm93B6bXHcH7yiVsiVdZd/VuRmyMy/zB3H38MMKYfxuBYXNTNEuvpRKgcN/x2U7h NVVzle07lM8nRv4hBtG+p4bpcthhBrxs0X99wgnAm6aznDV2vhHp7DnJhDU4vt3nD7Tw x01buTEozQHDTfhH4sbcByvjVr5KubG3yx5tpRWddEUijzi5tMP75W+649o6SiVzOPHu UULtUnGh0sLUUuLFd97GYSckBmZxlcC0RG8DQzoj1a8yq6YhbG5Yw5Vs1m/UBvhV10y5 ofFovSGrkPF6zXlLoAccIelh1eoSk6eSVOIy7bynJOwFOSGpxZEhZmX1OgOZOiEor7q9 f5cg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f20si1891151otl.313.2020.03.06.12.45.51; Fri, 06 Mar 2020 12:46:03 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726307AbgCFUpc (ORCPT + 99 others); Fri, 6 Mar 2020 15:45:32 -0500 Received: from zeniv.linux.org.uk ([195.92.253.2]:39080 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725922AbgCFUpc (ORCPT ); Fri, 6 Mar 2020 15:45:32 -0500 Received: from viro by ZenIV.linux.org.uk with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1jAJqV-006UGt-B7; Fri, 06 Mar 2020 20:45:23 +0000 Date: Fri, 6 Mar 2020 20:45:23 +0000 From: Al Viro To: Miklos Szeredi Cc: Ian Kent , David Howells , Christian Brauner , James Bottomley , Steven Whitehouse , Miklos Szeredi , Christian Brauner , Jann Horn , "Darrick J. Wong" , Linux API , linux-fsdevel , lkml , Greg Kroah-Hartman Subject: Re: [PATCH 00/17] VFS: Filesystem information and notifications [ver #17] Message-ID: <20200306204523.GD23230@ZenIV.linux.org.uk> References: <107666.1582907766@warthog.procyon.org.uk> <0403cda7345e34c800eec8e2870a1917a8c07e5c.camel@themaw.net> <20200306162549.GA28467@miu.piliscsaba.redhat.com> <20200306194322.GY23230@ZenIV.linux.org.uk> <20200306195823.GZ23230@ZenIV.linux.org.uk> <20200306200522.GA23230@ZenIV.linux.org.uk> <20200306203705.GB23230@ZenIV.linux.org.uk> <20200306203844.GC23230@ZenIV.linux.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200306203844.GC23230@ZenIV.linux.org.uk> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Mar 06, 2020 at 08:38:44PM +0000, Al Viro wrote: > On Fri, Mar 06, 2020 at 08:37:05PM +0000, Al Viro wrote: > > > You are misreading mntput_no_expire(), BTW - your get_mount() can > > bloody well race with umount(2), hitting the moment when we are done > > figuring out whether it's busy but hadn't cleaned ->mnt_ns (let alone > > set MNT_DOOMED) yet. If somebody calls umount(2) on a filesystem that > > is not mounted anywhere else, they are not supposed to see the sucker > > return 0 until the filesystem is shut down. You break that. > > While we are at it, d_alloc_parallel() requires i_rwsem on parent held > at least shared. Egads... Let me see if I got it right - you are providing procfs symlinks to objects on the internal mount of that thing. And those objects happen to be directories, so one can get to their parent that way. Or am I misreading that thing?