Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2354191pxj; Mon, 10 May 2021 00:22:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyFHTZXscpU77ISYDDz57hRJhiGZdLp9ZEq0ZSpI11umrtxCyilkmkQqYuT6kGALNFzcgL6 X-Received: by 2002:a17:906:c2cc:: with SMTP id ch12mr23599016ejb.402.1620631376388; Mon, 10 May 2021 00:22:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620631376; cv=none; d=google.com; s=arc-20160816; b=oQS9yfXRNUAc5GR2pWtRr5PrA+v2ioGsve+ouC13CvWB0PawtSVgX/RnVjXvYqYWT/ fKzvzJDQvK7Q7G9u2O3+40cvIdbcymuzv+4g28xb/7LWB4Wf/Bvi6YHU9kTQvdd2Xvd1 KYkMLIrHd+v+o8ztCewhYMi2XuiUH4qmZkwFJs+8iDNf/29sq6k7aUYq9gw3ayxl1V9f +eTggxy23ik66I+UkiB/MxC2MW8ONTgH8LSdxJi9+PZuDGDwom67nLABt9jR1s3L1Q7f pBEVVoEOXqRxKhUAmNzAq5gWfm9T9vAlDXNTHPb2EaLm53UleTqxjJg/V/ktXzUVbvCT iJZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=UpPleXxRp8AQI6Uxf+3kScaWrQez7/2/y9F28Fkscaw=; b=Cqo73CCuTyNNpImcC/8RtJ2SvXyNDbxIzyjNwF1HEX6tC5aoD+AJ+M/dKJPF7bJJc9 BhNYcYyaSOM8AQUwlz+0NB6E+sHGbTxFQizDS4StRcJd5GSfVzw5Enp5Ydpz9Nt28+OF fyGToiFjHp2nt6CryyK6ai2QUEREc4YA+/hVgTXdHF2fYEOtfGue38OBP2Evjef7DHFm EeoVRy/zH+ZtTYO7UnbpokOEpN7QQqBX92yK75SxriyWKbJ/yhhHqKPlQSCkXD152r3i qIqw7NhQdKXFrE+qa281UBJRDSglLWXVA6439mtZ42hF/mJs0Zb/oBMoEggxI8TgrFWd ElOQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l14si12976747edb.409.2021.05.10.00.22.33; Mon, 10 May 2021 00:22:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230135AbhEJHWo (ORCPT + 99 others); Mon, 10 May 2021 03:22:44 -0400 Received: from mail.kernel.org ([198.145.29.99]:60550 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230002AbhEJHV4 (ORCPT ); Mon, 10 May 2021 03:21:56 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id E9EE3600CD; Mon, 10 May 2021 07:20:45 +0000 (UTC) Date: Mon, 10 May 2021 09:20:43 +0200 From: Christian Brauner To: Al Viro Cc: Linus Torvalds , Jia He , Petr Mladek , Steven Rostedt , Sergey Senozhatsky , Andy Shevchenko , Rasmus Villemoes , Jonathan Corbet , Al Viro , Heiko Carstens , Vasily Gorbik , Christian Borntraeger , "Eric W . Biederman" , "Darrick J. Wong" , "Peter Zijlstra (Intel)" , Ira Weiny , Eric Biggers , "Ahmed S. Darwish" , "open list:DOCUMENTATION" , Linux Kernel Mailing List , linux-s390 , linux-fsdevel Subject: Re: [PATCH RFC 1/3] fs: introduce helper d_path_fast() Message-ID: <20210510072043.lde2n3hbk7lgeddv@wittgenstein> References: <20210508122530.1971-1-justin.he@arm.com> <20210508122530.1971-2-justin.he@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, May 08, 2021 at 11:15:28PM +0000, Al Viro wrote: > On Sat, May 08, 2021 at 10:46:23PM +0000, Al Viro wrote: > > On Sat, May 08, 2021 at 03:17:44PM -0700, Linus Torvalds wrote: > > > On Sat, May 8, 2021 at 2:06 PM Al Viro wrote: > > > > > > > > On Sat, May 08, 2021 at 01:39:45PM -0700, Linus Torvalds wrote: > > > > > > > > > +static inline int prepend_entries(struct prepend_buffer *b, const struct path *path, const struct path *root, struct mount *mnt) > > > > > > > > If anything, s/path/dentry/, since vfsmnt here will be equal to &mnt->mnt all along. > > > > > > Too subtle for me. > > > > > > And is it? Because mnt is from > > > > > > mnt = real_mount(path->mnt); > > > > > > earlier, while vfsmount is plain "path->mnt". > > > > static inline struct mount *real_mount(struct vfsmount *mnt) > > { > > return container_of(mnt, struct mount, mnt); > > } > > Basically, struct vfsmount instances are always embedded into struct mount ones. > All information about the mount tree is in the latter (and is visible only if > you manage to include fs/mount.h); here we want to walk towards root, so... > > Rationale: a lot places use struct vfsmount pointers, but they've no need to > access all that stuff. So struct vfsmount got trimmed down, with most of the > things that used to be there migrating into the containing structure. > > [Christian Browner Cc'd] > BTW, WTF do we have struct mount.user_ns and struct vfsmount.mnt_userns? > Can they ever be different? Christian? Yes, they can. > > Sigh... Namespace flavours always remind me of old joke - > Highlander II: There Should've Been Only One... (I'd prefer if mount propagation would die first.)