From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 79421C432C3 for ; Thu, 14 Nov 2019 14:13:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 59DC72070E for ; Thu, 14 Nov 2019 14:13:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727403AbfKNONb (ORCPT ); Thu, 14 Nov 2019 09:13:31 -0500 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 Received: from viro by ZenIV.linux.org.uk with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1iVFs8-0004Zd-4C; Thu, 14 Nov 2019 14:13:20 +0000 Date: Thu, 14 Nov 2019 14:13:20 +0000 From: Al Viro 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 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> User-Agent: Mutt/1.12.1 (2019-06-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@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.