Thread (3 messages) 3 messages, 3 authors, 2020-03-19

Re: [PATCH 01/14] VFS: Add additional RESOLVE_* flags [ver #18]

From: Jeremy Allison <hidden>
Date: 2020-03-13 18:35:16
Also in: linux-fsdevel, linux-security-module, lkml

On Fri, Mar 13, 2020 at 06:28:44PM +0000, Al Viro wrote:
On Fri, Mar 13, 2020 at 08:59:01PM +1100, Aleksa Sarai wrote:
quoted
On 2020-03-12, Stefan Metzmacher [off-list ref] wrote:
quoted
Am 12.03.20 um 17:24 schrieb Linus Torvalds:
quoted
But yes, if we have a major package like samba use it, then by all
means let's add linkat2(). How many things are we talking about? We
have a number of system calls that do *not* take flags, but do do
pathname walking. I'm thinking things like "mkdirat()"?)
I haven't looked them up in detail yet.
Jeremy can you provide a list?

Do you think we could route some of them like mkdirat() and mknodat()
via openat2() instead of creating new syscalls?
I have heard some folks asking for a way to create a directory and get a
handle to it atomically -- so arguably this is something that could be
inside openat2()'s feature set (O_MKDIR?). But I'm not sure how popular
of an idea this is.
For fuck sake, *NO*!

We don't need any more multiplexors from hell.  mkdir() and open() have
deeply different interpretation of pathnames (and anyone who asks for
e.g. traversals of dangling symlinks on mkdir() is insane).  Don't try to
mix those; even O_TMPFILE had been a mistake.

Folks, we'd paid very dearly for the atomic_open() merge.  We are _still_
paying for it - and keep finding bugs induced by the convoluted horrors
in that thing (see yesterday pull from vfs.git#fixes for the latest crop).
I hope to get into more or less sane shape (part - this cycle, with
followups in the next one), but the last thing we need is more complexity
in the area.
Can we disentangle the laudable desire to keep kernel internals
simple (which I completely agree with :-) from the desire to
keep user-space interfaces simple ?

Having some way of doing a mkdir() that returns an open fd
on the new directory *is* a very useful thing for many applications,
but I really don't care how the kernel implements it. We have so much
Linux-specific code already that one more thing won't matter :-).
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help