From: Ross Zwisler <zwisler@google.com>
To: Aleksa Sarai <cyphar@cyphar.com>
Cc: David Howells <dhowells@redhat.com>,
Matthew Wilcox <willy@infradead.org>,
Raul Rangel <rrangel@google.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
Mattias Nissler <mnissler@chromium.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
linux-fsdevel@vger.kernel.org,
Benjamin Gordon <bmgordon@google.com>,
Micah Morton <mortonm@google.com>,
Dmitry Torokhov <dtor@google.com>, Jan Kara <jack@suse.cz>
Subject: Re: [PATCH v5] Add a "nosymfollow" mount option.
Date: Fri, 21 Feb 2020 11:21:19 -0700 [thread overview]
Message-ID: <20200221182119.GA89482@google.com> (raw)
In-Reply-To: <20200221012142.4onrcfjtyghg237d@yavin.dot.cyphar.com>
On Fri, Feb 21, 2020 at 12:21:42PM +1100, Aleksa Sarai wrote:
> On 2020-02-13, Ross Zwisler <zwisler@google.com> wrote:
> > On Thu, Feb 06, 2020 at 12:10:45PM -0700, Ross Zwisler wrote:
<>
> > > As far as I can tell, SB_SUBMOUNT doesn't actually have any dependence on
> > > MS_SUBMOUNT. Nothing ever sets or checks MS_SUBMOUNT from within the kernel,
> > > and whether or not it's set from userspace has no bearing on how SB_SUBMOUNT
> > > is used. SB_SUBMOUNT is set independently inside of the kernel in
> > > vfs_submount().
> > >
> > > I agree that their association seems to be historical, introduced in this
> > > commit from David Howells:
> > >
> > > e462ec50cb5fa VFS: Differentiate mount flags (MS_*) from internal superblock flags
> > >
> > > In that commit message David notes:
> > >
> > > (1) Some MS_* flags get translated to MNT_* flags (such as MS_NODEV ->
> > > MNT_NODEV) without passing this on to the filesystem, but some
> > > filesystems set such flags anyway.
> > >
> > > I think this is sort of what we are trying to do with MS_NOSYMFOLLOW: have a
> > > userspace flag that translates to MNT_NOSYMFOLLOW, but which doesn't need an
> > > associated SB_* flag. Is it okay to reclaim the bit currently owned by
> > > MS_SUBMOUNT and use it for MS_NOSYMFOLLOW.
> > >
> > > A second option would be to choose one of the unused MS_* values from the
> > > middle of the range, such as 256 or 512. Looking back as far as git will let
> > > me, I don't think that these flags have been used for MS_* values at least
> > > since v2.6.12:
> > >
> > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/include/linux/fs.h?id=1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
> > >
> > > I think maybe these used to be S_WRITE and S_APPEND, which weren't filesystem
> > > mount flags?
> > >
> > > https://sites.uclouvain.be/SystInfo/usr/include/sys/mount.h.html
> > >
> > > A third option would be to create this flag using the new mount system:
> > >
> > > https://lwn.net/Articles/753473/
> > > https://lwn.net/Articles/759499/
> > >
> > > My main concern with this option is that for Chrome OS we'd like to be able to
> > > backport whatever solution we come up with to a variety of older kernels, and
> > > if we go with the new mount system this would require us to backport the
> > > entire new mount system to those kernels, which I think is infeasible.
> > >
> > > David, what are your thoughts on this? Of these three options for supporting
> > > a new MS_NOSYMFOLLOW flag:
> > >
> > > 1) reclaim the bit currently used by MS_SUBMOUNT
> > > 2) use a smaller unused value for the flag, 256 or 512
> > > 3) implement the new flag only in the new mount system
> > >
> > > do you think either #1 or #2 are workable? If so, which would you prefer?
> >
> > Gentle ping on this - do either of the options using the existing mount API
> > seem possible? Would it be useful for me to send out example patches in one
> > of those directions? Or is it out of the question, and I should spend my time
> > on making patches using the new mount system? Thanks!
>
> I think (1) or (2) sound reasonable, but I'm not really the right person
> to ask.
Cool, I appreciate the feedback. :) I'll go ahead and implement #2 and send
it out, along with example man page updates.
prev parent reply other threads:[~2020-02-21 18:21 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-04 21:50 [PATCH v5] Add a "nosymfollow" mount option Ross Zwisler
2020-02-04 21:52 ` Raul Rangel
2020-02-04 22:11 ` Ross Zwisler
2020-02-04 23:49 ` Ross Zwisler
2020-02-05 3:21 ` Matthew Wilcox
2020-02-05 3:45 ` Aleksa Sarai
2020-02-06 19:10 ` Ross Zwisler
2020-02-13 15:46 ` Ross Zwisler
2020-02-21 1:21 ` Aleksa Sarai
2020-02-21 18:21 ` Ross Zwisler [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200221182119.GA89482@google.com \
--to=zwisler@google.com \
--cc=bmgordon@google.com \
--cc=cyphar@cyphar.com \
--cc=dhowells@redhat.com \
--cc=dtor@google.com \
--cc=jack@suse.cz \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mnissler@chromium.org \
--cc=mortonm@google.com \
--cc=rrangel@google.com \
--cc=viro@zeniv.linux.org.uk \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.