linux-stable/arch/m68k
Christian Göttsche 6140be90ec fs/xattr: add *at family syscalls
Add the four syscalls setxattrat(), getxattrat(), listxattrat() and
removexattrat().  Those can be used to operate on extended attributes,
especially security related ones, either relative to a pinned directory
or on a file descriptor without read access, avoiding a
/proc/<pid>/fd/<fd> detour, requiring a mounted procfs.

One use case will be setfiles(8) setting SELinux file contexts
("security.selinux") without race conditions and without a file
descriptor opened with read access requiring SELinux read permission.

Use the do_{name}at() pattern from fs/open.c.

Pass the value of the extended attribute, its length, and for
setxattrat(2) the command (XATTR_CREATE or XATTR_REPLACE) via an added
struct xattr_args to not exceed six syscall arguments and not
merging the AT_* and XATTR_* flags.

[AV: fixes by Christian Brauner folded in, the entire thing rebased on
top of {filename,file}_...xattr() primitives, treatment of empty
pathnames regularized.  As the result, AT_EMPTY_PATH+NULL handling
is cheap, so f...(2) can use it]

Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
Link: https://lore.kernel.org/r/20240426162042.191916-1-cgoettsche@seltendoof.de
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Christian Brauner <brauner@kernel.org>
CC: x86@kernel.org
CC: linux-alpha@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: linux-arm-kernel@lists.infradead.org
CC: linux-ia64@vger.kernel.org
CC: linux-m68k@lists.linux-m68k.org
CC: linux-mips@vger.kernel.org
CC: linux-parisc@vger.kernel.org
CC: linuxppc-dev@lists.ozlabs.org
CC: linux-s390@vger.kernel.org
CC: linux-sh@vger.kernel.org
CC: sparclinux@vger.kernel.org
CC: linux-fsdevel@vger.kernel.org
CC: audit@vger.kernel.org
CC: linux-arch@vger.kernel.org
CC: linux-api@vger.kernel.org
CC: linux-security-module@vger.kernel.org
CC: selinux@vger.kernel.org
[brauner: slight tweaks]
Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2024-11-06 12:59:44 -05:00
..
68000 m68knommu: updates and fixes for v6.7 2023-11-02 15:31:01 -10:00
amiga m68k: amiga: Turn off Warp1260 interrupts during boot 2024-06-04 08:59:58 +02:00
apollo m68k: apollo: Add and use "apollo.h" 2023-10-06 10:03:02 +02:00
atari m68k: atari: Fix TT bootup freeze / unexpected (SCU) interrupt messages 2024-07-01 14:23:05 +02:00
bvme6000 m68k: Replace GPL 2.0+ README.legal boilerplate with SPDX 2023-10-06 10:03:04 +02:00
coldfire arch: include linux/cpu.h for trap_init() prototype 2023-11-23 11:32:31 +01:00
configs m68k: defconfig: Update defconfigs for v6.11-rc1 2024-08-26 10:25:02 +02:00
emu m68k updates for v6.11 2024-07-16 11:30:32 -07:00
fpsp040 m68k: fpsp040: Fix indentation by 5 spaces 2023-10-16 14:30:40 +02:00
hp300 serial: 8250: Move hp300_setup_serial_console() to <linux/serial_8250.h> 2024-01-27 19:01:39 -08:00
ifpsp060 m68k: Replace GPL 2.0+ README.legal boilerplate with SPDX 2023-10-06 10:03:04 +02:00
include m68k: cmpxchg: Use swap() to improve code 2024-08-26 10:24:34 +02:00
kernel fs/xattr: add *at family syscalls 2024-11-06 12:59:44 -05:00
lib m68k: lib: Include <linux/libgcc.h> for __muldi3() 2023-10-16 14:30:40 +02:00
mac m68k: mac: Fix reboot hang on Mac IIci 2024-05-08 17:43:22 +02:00
math-emu m68k: math-emu: Add missing prototypes 2023-10-06 10:03:01 +02:00
mm m68knommu: updates and fixes for v6.7 2023-11-02 15:31:01 -10:00
mvme16x m68k: Replace GPL 2.0+ README.legal boilerplate with SPDX 2023-10-06 10:03:04 +02:00
mvme147 m68k: Replace GPL 2.0+ README.legal boilerplate with SPDX 2023-10-06 10:03:04 +02:00
q40 treewide: Fix wrong singular form of jiffies in comments 2024-09-08 20:47:40 +02:00
sun3 m68k: sun3: Fix indentation by 5 or 7 spaces 2023-10-16 14:30:39 +02:00
sun3x m68k: sun3/3x: Add and use "sun3.h" 2023-10-06 10:03:04 +02:00
tools/amiga m68k: tools: Replace zero-length array with flexible-array member 2020-05-25 10:55:56 +02:00
virt m68k: Rework BI_VIRT_RNG_SEED as BI_RNG_SEED 2022-09-28 22:16:44 +02:00
install.sh kbuild: Abort make on install failures 2024-07-20 13:34:54 +09:00
Kbuild m68k: Introduce a virtual m68k machine 2022-04-11 11:48:01 +02:00
Kconfig m68k: Move ARCH_HAS_CPU_CACHE_ALIASING 2024-05-08 17:43:22 +02:00
Kconfig.bus m68k: coldfire: drop ISA_DMA_API support 2022-05-16 13:18:30 +10:00
Kconfig.cpu arch: define CONFIG_PAGE_SIZE_*KB on all architectures 2024-03-06 19:29:09 +01:00
Kconfig.debug m68k: Remove obsolete config NO_KERNEL_MSG 2023-03-20 15:39:14 +01:00
Kconfig.devices m68k: /proc/hardware should depend on PROC_FS 2023-02-13 11:34:49 +01:00
Kconfig.machine m68knommu: improve config ROM setting defaults 2023-10-23 08:22:22 +10:00
Makefile kbuild: use 4-space indentation when followed by conditionals 2024-02-15 06:05:44 +09:00