From mboxrd@z Thu Jan 1 00:00:00 1970 From: Al Viro Subject: Re: [PATCH v2] fs: add new O_MNT flag for opening mount root from mountpoint fd Date: Thu, 14 Nov 2019 14:13:20 +0000 Message-ID: <20191114141320.GI26530@ZenIV.linux.org.uk> References: <20191114090454.27903-1-ptikhomirov@virtuozzo.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <20191114090454.27903-1-ptikhomirov@virtuozzo.com> Sender: linux-kernel-owner@vger.kernel.org To: Pavel Tikhomirov Cc: Jeff Layton , "J . Bruce Fields" , Arnd Bergmann , Paul Moore , Richard Guy Briggs , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, Andrei Vagin List-Id: linux-arch.vger.kernel.org On Thu, Nov 14, 2019 at 12:04:54PM +0300, Pavel Tikhomirov wrote: > More precisely the algorithm is: > a) openat mpfd to a new mountpoint through parent mount's root - > p_rootfd (which we already have) or mountpoint fd under a sibling mount > - s_mpfd if our mountpoint is already overmounted. > b) create a new mount on mpfd via /proc//fd/ interface > c) openat it's rootfd via O_MNT from mpfd > > If we have mpfd and rootfd for each mount through /proc//fd/ > interface we will be able to bindmount any part of each of already > created mounts to restore other mounts and we will be able to configure > mounts, e.g. change sharing or other options even if mounts are > invisible from fs-root. Everything else aside (and I'm not thrilled about the idea in general), you are not handling the situation when that overmount is, in turn, overmounted. Or when there's an automount set on top of it, etc. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from zeniv.linux.org.uk ([195.92.253.2]:40268 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727341AbfKNONa (ORCPT ); Thu, 14 Nov 2019 09:13:30 -0500 Date: Thu, 14 Nov 2019 14:13:20 +0000 From: Al Viro Subject: Re: [PATCH v2] fs: add new O_MNT flag for opening mount root from mountpoint fd Message-ID: <20191114141320.GI26530@ZenIV.linux.org.uk> References: <20191114090454.27903-1-ptikhomirov@virtuozzo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191114090454.27903-1-ptikhomirov@virtuozzo.com> Sender: linux-arch-owner@vger.kernel.org List-ID: To: Pavel Tikhomirov Cc: Jeff Layton , "J . Bruce Fields" , Arnd Bergmann , Paul Moore , Richard Guy Briggs , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, Andrei Vagin Message-ID: <20191114141320.22BYghe4_3cafdGjnvQ_64zxVZmonRvyc-RGhR2D314@z> On Thu, Nov 14, 2019 at 12:04:54PM +0300, Pavel Tikhomirov wrote: > More precisely the algorithm is: > a) openat mpfd to a new mountpoint through parent mount's root - > p_rootfd (which we already have) or mountpoint fd under a sibling mount > - s_mpfd if our mountpoint is already overmounted. > b) create a new mount on mpfd via /proc//fd/ interface > c) openat it's rootfd via O_MNT from mpfd > > If we have mpfd and rootfd for each mount through /proc//fd/ > interface we will be able to bindmount any part of each of already > created mounts to restore other mounts and we will be able to configure > mounts, e.g. change sharing or other options even if mounts are > invisible from fs-root. Everything else aside (and I'm not thrilled about the idea in general), you are not handling the situation when that overmount is, in turn, overmounted. Or when there's an automount set on top of it, etc.