From: Christian Brauner <brauner@kernel.org>
To: Andreas Schwab <schwab@linux-m68k.org>
Cc: David Laight <David.Laight@ACULAB.COM>,
'Aleksa Sarai' <cyphar@cyphar.com>,
Alexey Gladkov <legion@kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
Arnd Bergmann <arnd@arndb.de>,
"linux-api@vger.kernel.org" <linux-api@vger.kernel.org>,
"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
"viro@zeniv.linux.org.uk" <viro@zeniv.linux.org.uk>,
"James.Bottomley@hansenpartnership.com"
<James.Bottomley@hansenpartnership.com>,
"acme@kernel.org" <acme@kernel.org>,
"alexander.shishkin@linux.intel.com"
<alexander.shishkin@linux.intel.com>,
"axboe@kernel.dk" <axboe@kernel.dk>,
"benh@kernel.crashing.org" <benh@kernel.crashing.org>,
"borntraeger@de.ibm.com" <borntraeger@de.ibm.com>,
"bp@alien8.de" <bp@alien8.de>,
"catalin.marinas@arm.com" <catalin.m>
Subject: Re: [PATCH v4 2/5] fs: Add fchmodat2()
Date: Thu, 27 Jul 2023 19:02:53 +0200 [thread overview]
Message-ID: <20230727-zerrt-leitmotiv-9e8b60abf690@brauner> (raw)
In-Reply-To: <87ila5jp2y.fsf@igel.home>
On Thu, Jul 27, 2023 at 06:28:53PM +0200, Andreas Schwab wrote:
> On Jul 27 2023, David Laight wrote:
>
> > From: Aleksa Sarai
> >> Sent: 25 July 2023 17:36
> > ...
> >> We almost certainly want to support AT_EMPTY_PATH at the same time.
> >> Otherwise userspace will still need to go through /proc when trying to
> >> chmod a file handle they have.
> >
> > That can't be allowed.
>
> IIUC, fchmodat2(fd, "", m, AT_EMPTY_PATH) is equivalent to fchmod(fd,
> m). With that, new architectures only need to implement the fchmodat2
> syscall to cover all chmod variants.
There's a difference though as fchmod() doesn't work with O_PATH file
descriptors while AT_EMPTY_PATH does. Similar to how fchown() doesn't
work with O_PATH file descriptors.
However, we do allow AT_EMPTY_PATH with fchownat() so there's no reason
to not allow it for fchmodat2().
But it's a bit of a shame that O_PATH looks less and less like O_PATH.
It came from can-do-barely-anything to can-do-quite-a-lot-of-things over
the years.
In any case, AT_EMPTY_PATH for fchmodat2() can be an additional patch on
top.
next prev parent reply other threads:[~2023-07-27 17:02 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-17 1:27 Add a new fchmodat4() syscall, v2 Palmer Dabbelt
2019-07-17 1:27 ` [PATCH v2 1/4] Non-functional cleanup of a "__user * filename" Palmer Dabbelt
2019-07-17 1:27 ` [PATCH v2 2/4] Add fchmodat4(), a new syscall Palmer Dabbelt
2019-07-17 1:48 ` Al Viro
2019-07-17 2:12 ` Palmer Dabbelt
2019-07-17 2:40 ` Rich Felker
2019-07-17 3:02 ` Al Viro
2019-07-17 1:27 ` [PATCH v2 3/4] arch: Register fchmodat4, usually as syscall 434 Palmer Dabbelt
2019-07-17 7:54 ` Arnd Bergmann
2019-07-17 1:27 ` [PATCH v2 4/4] tools: Add fchmodat4 Palmer Dabbelt
2019-07-17 12:39 ` Arnaldo Carvalho de Melo
2020-06-09 13:52 ` Add a new fchmodat4() syscall, v2 Florian Weimer
2023-07-11 11:25 ` [PATCH v3 0/5] Add a new fchmodat4() syscall Alexey Gladkov
2023-07-11 11:25 ` [PATCH v3 1/5] Non-functional cleanup of a "__user * filename" Alexey Gladkov
[not found] ` <3098381cf93a5010e878319c6218d2c5851746c0.1689074739.git.legion-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2023-07-11 11:32 ` Arnd Bergmann
2023-07-11 11:25 ` [PATCH v3 2/5] fs: Add fchmodat4() Alexey Gladkov
2023-07-11 11:42 ` Arnd Bergmann
2023-07-11 11:52 ` Christian Brauner
2023-07-11 12:51 ` Alexey Gladkov
2023-07-11 14:01 ` Christian Brauner
2023-07-11 15:23 ` Alexey Gladkov
2023-07-11 12:28 ` Matthew Wilcox
2023-07-11 12:49 ` Alexey Gladkov
2023-07-11 11:25 ` [PATCH v3 3/5] arch: Register fchmodat4, usually as syscall 451 Alexey Gladkov
2023-07-11 11:31 ` Arnd Bergmann
2023-07-11 11:25 ` [PATCH v3 4/5] tools headers UAPI: Sync files changed by new fchmodat4 syscall Alexey Gladkov
[not found] ` <cover.1689074739.git.legion-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2023-07-11 11:25 ` [PATCH v3 5/5] selftests: add fchmodat4(2) selftest Alexey Gladkov
2023-07-11 12:10 ` Florian Weimer
2023-07-11 13:38 ` Alexey Gladkov
2023-07-11 12:24 ` [PATCH v3 0/5] Add a new fchmodat4() syscall Florian Weimer
2023-07-11 15:14 ` Christian Brauner
2023-07-25 11:05 ` Alexey Gladkov
2023-07-25 12:05 ` Christian Brauner
2023-07-11 16:16 ` [PATCH v4 0/5] Add a new fchmodat2() syscall Alexey Gladkov
2023-07-11 16:16 ` [PATCH v4 1/5] Non-functional cleanup of a "__user * filename" Alexey Gladkov
2023-07-11 16:16 ` [PATCH v4 2/5] fs: Add fchmodat2() Alexey Gladkov
2023-07-11 17:05 ` Christian Brauner
2023-07-25 16:36 ` Aleksa Sarai
2023-07-26 13:45 ` Alexey Gladkov
[not found] ` <ZMEjlDNJkFpYERr1-hcDgGtZH8xNAfugRpC6u6w@public.gmane.org>
2023-07-27 10:26 ` Christian Brauner
2023-07-27 17:12 ` Aleksa Sarai
2023-07-27 17:39 ` Aleksa Sarai
2023-07-28 8:43 ` David Laight
2023-07-28 18:42 ` dalias
2023-07-27 9:01 ` David Laight
2023-07-27 16:28 ` Andreas Schwab
2023-07-27 17:02 ` Christian Brauner [this message]
2023-07-27 17:13 ` dalias
2023-07-27 17:36 ` Christian Brauner
2023-07-27 16:31 ` dalias
2023-07-11 16:16 ` [PATCH v4 3/5] arch: Register fchmodat2, usually as syscall 452 Alexey Gladkov
2023-07-11 16:26 ` Arnd Bergmann
[not found] ` <a677d521f048e4ca439e7080a5328f21eb8e960e.1689092120.git.legion-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2023-07-25 7:16 ` Geert Uytterhoeven
2023-07-25 16:43 ` Aleksa Sarai
2023-07-27 10:37 ` Christian Brauner
2023-07-27 17:42 ` Aleksa Sarai
2023-07-11 16:16 ` [PATCH v4 4/5] tools headers UAPI: Sync files changed by new fchmodat2 syscall Alexey Gladkov
2023-07-11 17:19 ` Namhyung Kim
2023-07-11 17:23 ` Alexey Gladkov
2023-07-11 16:16 ` [PATCH v4 5/5] selftests: Add fchmodat2 selftest Alexey Gladkov
2023-07-11 17:36 ` (subset) [PATCH v4 0/5] Add a new fchmodat2() syscall Christian Brauner
2023-07-12 2:42 ` Rich Felker
2023-07-25 15:58 ` Add fchmodat2() - or add a more general syscall? David Howells
2023-07-25 16:10 ` Florian Weimer
2023-07-25 18:39 ` David Howells
2023-07-25 18:44 ` Rich Felker
2023-07-26 13:30 ` Christian Brauner
2023-07-25 16:50 ` Aleksa Sarai
2023-07-27 3:57 ` Eric Biggers
2023-07-27 10:27 ` Christian Brauner
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=20230727-zerrt-leitmotiv-9e8b60abf690@brauner \
--to=brauner@kernel.org \
--cc=David.Laight@ACULAB.COM \
--cc=James.Bottomley@hansenpartnership.com \
--cc=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=arnd@arndb.de \
--cc=axboe@kernel.dk \
--cc=benh@kernel.crashing.org \
--cc=borntraeger@de.ibm.com \
--cc=bp@alien8.de \
--cc=cyphar@cyphar.com \
--cc=legion@kernel.org \
--cc=linux-api@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=schwab@linux-m68k.org \
--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