Linux-Fsdevel Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Matthew Wilcox <willy@infradead.org>
To: Al Viro <viro@zeniv.linux.org.uk>
Cc: Dave Chinner <david@fromorbit.com>,
Christian Schoenebeck <qemu_oss@crudebyte.com>,
"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
Greg Kurz <groug@kaod.org>,
linux-fsdevel@vger.kernel.org, stefanha@redhat.com,
mszeredi@redhat.com, vgoyal@redhat.com, gscrivan@redhat.com,
dwalsh@redhat.com, chirantan@chromium.org
Subject: Re: xattr names for unprivileged stacking?
Date: Sat, 29 Aug 2020 20:17:51 +0100 [thread overview]
Message-ID: <20200829191751.GT14765@casper.infradead.org> (raw)
In-Reply-To: <20200829161358.GP1236603@ZenIV.linux.org.uk>
On Sat, Aug 29, 2020 at 05:13:58PM +0100, Al Viro wrote:
> On Sat, Aug 29, 2020 at 05:07:17PM +0100, Matthew Wilcox wrote:
>
> > I agree with you that supporting named streams within a file requires
> > an independent inode for each stream. I disagree with you that this is
> > dentry cache infrastructure. I do not believe in giving each stream
> > its own dentry. Either they share the default stream's dentry, or they
> > have no dentry (mild preference for no dentry).
>
> *blink*
>
> Just how would they have different inodes while sharing a dentry?
>
> > > The fact that ADS inodes would not be in the dentry cache and hence
> > > not visible to pathwalks at all then means that all of the issues
> > > such as mounting over them, chroot, etc don't exist in the first
> > > place...
> >
> > Wait, you've now switched from "this is dentry cache infrastructure"
> > to "it should not be in the dentry cache". So I don't understand what
> > you're arguing for.
>
> Bloody wonderful, that. So now we have struct file instances with no dentry
> associated with them? Which would have to be taken into account all over
> the place...
I probably have the wrong nomenclature for what I'm proposing.
So here's a concrete API. What questions need to be answered?
fd = open("real", O_RDWR);
// fetch stream names
sfd = open_stream(fd, NULL);
read(sfd, names, length);
close(sfd);
// open the first one
sfd = open_stream(fd, names);
read(sfd, buffer, buflen);
close(sfd);
// create a new anonymous stream
sfd = open_stream(fd, "");
write(sfd, buffer, buflen);
// name it
linkat(sfd, NULL, fd, "newstream", AT_EMPTY_PATH);
close(sfd);
- Stream names are NUL terminated and may contain any other character.
If you want to put a '/' in a stream name, that's fine, but there's
no hierarchy. Ditto "//../././../../..//./." It's just a really
oddly named stream.
- linkat() will fail if 'fd' does not match where 'sfd' was created.
- open_stream() always creates a new stream when a zero-length string is
specified.
- open_stream() returns ENOENT if there is no stream by that name (ie the
only way to create a stream is to specify no name, and then name
it later).
- sfd inherits the appropriate O_ flags from fd (O_RDWR, O_CLOEXEC, ...)
- open_stream(sfd) is ENOTTY.
next prev parent reply other threads:[~2020-08-29 19:18 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-28 10:55 Dr. David Alan Gilbert
2020-07-28 13:08 ` Greg Kurz
2020-07-28 13:55 ` Christian Schoenebeck
2020-08-04 11:28 ` Dr. David Alan Gilbert
2020-08-04 13:51 ` Christian Schoenebeck
2020-08-12 11:18 ` Dr. David Alan Gilbert
2020-08-12 13:34 ` Christian Schoenebeck
2020-08-12 14:33 ` Dr. David Alan Gilbert
2020-08-13 9:01 ` Christian Schoenebeck
2020-08-16 22:56 ` Dave Chinner
2020-08-16 23:09 ` Matthew Wilcox
2020-08-17 0:29 ` Dave Chinner
2020-08-17 10:37 ` file forks vs. xattr (was: xattr names for unprivileged stacking?) Christian Schoenebeck
2020-08-23 23:40 ` Dave Chinner
2020-08-24 15:30 ` Christian Schoenebeck
2020-08-24 20:01 ` Miklos Szeredi
2020-08-24 21:26 ` Frank van der Linden
2020-08-24 22:29 ` Theodore Y. Ts'o
2020-08-25 15:12 ` Christian Schoenebeck
2020-08-25 15:32 ` Miklos Szeredi
2020-08-27 12:02 ` Christian Schoenebeck
2020-08-27 12:25 ` Matthew Wilcox
2020-08-27 13:48 ` Christian Schoenebeck
2020-08-27 14:01 ` Matthew Wilcox
2020-08-27 14:23 ` Christian Schoenebeck
2020-08-27 14:25 ` Matthew Wilcox
2020-08-27 14:44 ` Al Viro
2020-08-27 16:29 ` Dr. David Alan Gilbert
2020-08-27 16:35 ` Matthew Wilcox
2020-08-28 9:11 ` Christian Schoenebeck
2020-08-28 14:46 ` Theodore Y. Ts'o
2020-08-27 15:22 ` xattr names for unprivileged stacking? Matthew Wilcox
2020-08-27 22:24 ` Dave Chinner
2020-08-29 16:07 ` Matthew Wilcox
2020-08-29 16:13 ` Al Viro
2020-08-29 17:51 ` Miklos Szeredi
2020-08-29 18:04 ` Al Viro
2020-08-29 18:22 ` Christian Schoenebeck
2020-08-29 19:13 ` Miklos Szeredi
2020-08-29 19:25 ` Al Viro
2020-08-30 19:05 ` Miklos Szeredi
2020-08-30 19:10 ` Matthew Wilcox
2020-08-31 7:34 ` Miklos Szeredi
2020-08-31 11:37 ` Matthew Wilcox
2020-08-31 11:51 ` Miklos Szeredi
2020-08-31 13:23 ` Matthew Wilcox
2020-08-31 14:21 ` Miklos Szeredi
2020-08-31 14:25 ` Theodore Y. Ts'o
2020-08-31 14:45 ` Matthew Wilcox
2020-08-31 14:49 ` Miklos Szeredi
2020-09-01 3:34 ` Dave Chinner
2020-09-01 14:52 ` Theodore Y. Ts'o
2020-09-01 15:14 ` Theodore Y. Ts'o
2020-09-02 5:19 ` Dave Chinner
2020-08-31 18:02 ` Andreas Dilger
2020-09-01 3:48 ` Dave Chinner
2020-08-29 19:17 ` Matthew Wilcox [this message]
2020-08-29 19:40 ` Al Viro
2020-08-29 20:12 ` Matthew Wilcox
2020-08-31 14:23 ` Theodore Y. Ts'o
2020-08-31 14:40 ` Matthew Wilcox
2020-08-31 16:11 ` Christian Schoenebeck
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=20200829191751.GT14765@casper.infradead.org \
--to=willy@infradead.org \
--cc=chirantan@chromium.org \
--cc=david@fromorbit.com \
--cc=dgilbert@redhat.com \
--cc=dwalsh@redhat.com \
--cc=groug@kaod.org \
--cc=gscrivan@redhat.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=mszeredi@redhat.com \
--cc=qemu_oss@crudebyte.com \
--cc=stefanha@redhat.com \
--cc=vgoyal@redhat.com \
--cc=viro@zeniv.linux.org.uk \
--subject='Re: xattr names for unprivileged stacking?' \
/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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).