Thread (45 messages) 45 messages, 12 authors, 2023-07-28

Re: [PATCH v3 2/5] fs: Add fchmodat4()

From: Alexey Gladkov <legion@kernel.org>
Date: 2023-07-11 15:24:17
Also in: linux-alpha, linux-api, linux-arch, linux-fsdevel, linux-m68k, linux-mips, linux-s390, linux-sh, linuxppc-dev, sparclinux

On Tue, Jul 11, 2023 at 04:01:03PM +0200, Christian Brauner wrote:
On Tue, Jul 11, 2023 at 02:51:01PM +0200, Alexey Gladkov wrote:
quoted
On Tue, Jul 11, 2023 at 01:52:01PM +0200, Christian Brauner wrote:
quoted
On Tue, Jul 11, 2023 at 01:42:19PM +0200, Arnd Bergmann wrote:
quoted
On Tue, Jul 11, 2023, at 13:25, Alexey Gladkov wrote:
quoted
From: Palmer Dabbelt <redacted>

On the userspace side fchmodat(3) is implemented as a wrapper
function which implements the POSIX-specified interface. This
interface differs from the underlying kernel system call, which does not
have a flags argument. Most implementations require procfs [1][2].

There doesn't appear to be a good userspace workaround for this issue
but the implementation in the kernel is pretty straight-forward.

The new fchmodat4() syscall allows to pass the AT_SYMLINK_NOFOLLOW flag,
unlike existing fchmodat.

[1] 
https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/fchmodat.c;h=17eca54051ee28ba1ec3f9aed170a62630959143;hb=a492b1e5ef7ab50c6fdd4e4e9879ea5569ab0a6c#l35
[2] 
https://git.musl-libc.org/cgit/musl/tree/src/stat/fchmodat.c?id=718f363bc2067b6487900eddc9180c84e7739f80#n28

Signed-off-by: Palmer Dabbelt <redacted>
Signed-off-by: Alexey Gladkov <legion@kernel.org>
I don't know the history of why we ended up with the different
interface, or whether this was done intentionally in the kernel
or if we want this syscall.

Assuming this is in fact needed, I double-checked that the
implementation looks correct to me and is portable to all the
architectures, without the need for a compat wrapper.

Acked-by: Arnd Bergmann <arnd@arndb.de>
The system call itself is useful afaict. But please,

s/fchmodat4/fchmodat2/
Sure. I will.
Thanks. Can you also wire this up for every architecture, please?
I don't see that this has been done in this series.
Sure. I have already added in all architectures as far as I can tell:

$ diff -s <(find arch/ -name '*.tbl' |sort -u) <(git grep -lw fchmodat2 arch/ |sort -u)
Files /dev/fd/63 and /dev/fd/62 are identical

-- 
Rgrds, legion
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help