Linux-NFS Archive mirror
 help / color / mirror / Atom feed
From: Aleksa Sarai <cyphar@cyphar.com>
To: Jori Koolstra <jkoolstra@xs4all.nl>
Cc: Dorjoy Chowdhury <dorjoychy111@gmail.com>,
	brauner@kernel.org,  linux-fsdevel@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-api@vger.kernel.org,
	 ceph-devel@vger.kernel.org, gfs2@lists.linux.dev,
	linux-nfs@vger.kernel.org,  linux-cifs@vger.kernel.org,
	v9fs@lists.linux.dev, linux-kselftest@vger.kernel.org,
	 viro@zeniv.linux.org.uk, jack@suse.cz, jlayton@kernel.org,
	chuck.lever@oracle.com,  alex.aring@gmail.com, arnd@arndb.de,
	adilger@dilger.ca, mjguzik@gmail.com,  smfrench@gmail.com,
	richard.henderson@linaro.org, mattst88@gmail.com,
	 linmag7@gmail.com, tsbogend@alpha.franken.de,
	James.Bottomley@hansenpartnership.com,  deller@gmx.de,
	davem@davemloft.net, andreas@gaisler.com, idryomov@gmail.com,
	 amarkuze@redhat.com, slava@dubeyko.com, agruenba@redhat.com,
	trondmy@kernel.org,  anna@kernel.org, sfrench@samba.org,
	pc@manguebit.org, ronniesahlberg@gmail.com,
	 sprasad@microsoft.com, tom@talpey.com, bharathsm@microsoft.com,
	shuah@kernel.org,  miklos@szeredi.hu, hansg@kernel.org
Subject: Re: [PATCH v6 1/4] openat2: new OPENAT2_REGULAR flag support
Date: Fri, 17 Apr 2026 17:58:07 +1000	[thread overview]
Message-ID: <2026-04-17-boiled-crisp-fiddles-router-N2oV0E@cyphar.com> (raw)
In-Reply-To: <2059025134.378522.1776375762839@kpc.webmail.kpnmail.nl>

[-- Attachment #1: Type: text/plain, Size: 2323 bytes --]

On 2026-04-16, Jori Koolstra <jkoolstra@xs4all.nl> wrote:
> 
> > Op 16-04-2026 17:15 CEST schreef Aleksa Sarai <cyphar@cyphar.com>:
> > 
> > 
> > Oh, I didn't notice that this wasn't mentioned here, we had a separate
> > discussion about it in a thread with Jori and I must've assumed we
> > discussed it in both. (My brain is also really not wired up to read
> > large octal values easily.)
> > 
> > While it is hard to add new O_* flags (hence OPENAT2_REGULAR), it's not
> > /impossible/ (Jori has a patch for OPENAT2_EMPTY_PATH that is safe to
> > add to O_* flags because of some fun historical coincidences).
> 
> But it would change userspace, at least in theory, right? If anyone for
> some reason decided to set whatever the bit will be for O_EMPTYPATH
> in a call to openat(), and pass an empty string, relying on this to fail,
> that will no longer be the case. But that is just really silly. Or are you
> hinting on something else?

Yes, such a program would break, but it is a fairly safe bet that no
such program actually exists in the wild. There is a limit to "never
break userspace" -- it actually needs to break a real userspace program
for it to matter.

Even then there are limits -- in theory someone could write a program
that would error out if any new flag is added to any syscall that
returns -EINVAL for invalid flags (in fact, we have selftests for
openat2(2) that would break because we test the error path) but it
wouldn't make sense to not add features to any syscall because such a
program could theoretically exist.

We change uAPI all the time, the trick is doing it so that userspace
doesn't notice.

For O_EMPTYPATH the logic is that programs that pass regular paths would
work the same way as they do now (i.e., LOOKUP_EMPTY semantics) and
programs that used to pass "" would previously get ENOENT -- it seems
quite unlikely anyone would depend on this for anything (they could
check if the string was empty themselves, after all) and it seems
astronomically unlikely that that they would pass garbage *and* depend
on it for anything.

(It is a little funky that open("", O_EMPTYPATH) would give you an fd to
"." but that makes more sense than the alternatives so let's just keep
it consistent.)

-- 
Aleksa Sarai
https://www.cyphar.com/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 265 bytes --]

  reply	other threads:[~2026-04-17  7:58 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-28 17:22 [PATCH v6 0/4] OPENAT2_REGULAR flag support for openat2 Dorjoy Chowdhury
2026-03-28 17:22 ` [PATCH v6 1/4] openat2: new OPENAT2_REGULAR flag support Dorjoy Chowdhury
2026-03-30 11:49   ` Jeff Layton
2026-03-30 15:07     ` Dorjoy Chowdhury
2026-04-01 19:02       ` Jeff Layton
2026-04-04 15:17         ` Dorjoy Chowdhury
2026-04-05 23:27           ` Jeff Layton
2026-04-06 15:30             ` Dorjoy Chowdhury
2026-04-14 17:33               ` Dorjoy Chowdhury
2026-04-16 11:41   ` Aleksa Sarai
2026-04-16 11:58     ` Dorjoy Chowdhury
2026-04-16 13:05       ` Aleksa Sarai
2026-04-16 13:28         ` Jeff Layton
2026-04-16 13:52   ` Jori Koolstra
2026-04-16 14:21     ` Dorjoy Chowdhury
2026-04-16 15:03       ` Jori Koolstra
2026-04-16 15:15         ` Christian Brauner
2026-04-16 21:36           ` Jori Koolstra
2026-04-16 15:15       ` Aleksa Sarai
2026-04-16 21:42         ` Jori Koolstra
2026-04-17  7:58           ` Aleksa Sarai [this message]
2026-04-27 13:27   ` Florian Weimer
2026-04-27 14:17     ` Dorjoy Chowdhury
2026-04-27 14:29       ` Christian Brauner
2026-03-28 17:22 ` [PATCH v6 2/4] kselftest/openat2: test for OPENAT2_REGULAR flag Dorjoy Chowdhury
2026-03-28 17:22 ` [PATCH v6 3/4] sparc/fcntl.h: convert O_* flag macros from hex to octal Dorjoy Chowdhury
2026-03-28 17:22 ` [PATCH v6 4/4] mips/fcntl.h: " Dorjoy Chowdhury
2026-04-16 13:07 ` [PATCH v6 0/4] OPENAT2_REGULAR flag support for openat2 Christian Brauner
2026-04-16 15:22   ` Dorjoy Chowdhury
2026-04-20 13:20     ` Christian Brauner
2026-04-20 14:31       ` Dorjoy Chowdhury
2026-05-21 10:53   ` Christian Brauner
2026-05-21 15:49     ` Dorjoy Chowdhury

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=2026-04-17-boiled-crisp-fiddles-router-N2oV0E@cyphar.com \
    --to=cyphar@cyphar.com \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=adilger@dilger.ca \
    --cc=agruenba@redhat.com \
    --cc=alex.aring@gmail.com \
    --cc=amarkuze@redhat.com \
    --cc=andreas@gaisler.com \
    --cc=anna@kernel.org \
    --cc=arnd@arndb.de \
    --cc=bharathsm@microsoft.com \
    --cc=brauner@kernel.org \
    --cc=ceph-devel@vger.kernel.org \
    --cc=chuck.lever@oracle.com \
    --cc=davem@davemloft.net \
    --cc=deller@gmx.de \
    --cc=dorjoychy111@gmail.com \
    --cc=gfs2@lists.linux.dev \
    --cc=hansg@kernel.org \
    --cc=idryomov@gmail.com \
    --cc=jack@suse.cz \
    --cc=jkoolstra@xs4all.nl \
    --cc=jlayton@kernel.org \
    --cc=linmag7@gmail.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-cifs@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=mattst88@gmail.com \
    --cc=miklos@szeredi.hu \
    --cc=mjguzik@gmail.com \
    --cc=pc@manguebit.org \
    --cc=richard.henderson@linaro.org \
    --cc=ronniesahlberg@gmail.com \
    --cc=sfrench@samba.org \
    --cc=shuah@kernel.org \
    --cc=slava@dubeyko.com \
    --cc=smfrench@gmail.com \
    --cc=sprasad@microsoft.com \
    --cc=tom@talpey.com \
    --cc=trondmy@kernel.org \
    --cc=tsbogend@alpha.franken.de \
    --cc=v9fs@lists.linux.dev \
    --cc=viro@zeniv.linux.org.uk \
    /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 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 read-only IMAP folder(s) and NNTP newsgroup(s).