linux/scripts
Andrey Albershteyn be7efb2d20
fs: introduce file_getattr and file_setattr syscalls
Introduce file_getattr() and file_setattr() syscalls to manipulate inode
extended attributes. The syscalls takes pair of file descriptor and
pathname. Then it operates on inode opened accroding to openat()
semantics. The struct file_attr is passed to obtain/change extended
attributes.

This is an alternative to FS_IOC_FSSETXATTR ioctl with a difference
that file don't need to be open as we can reference it with a path
instead of fd. By having this we can manipulated inode extended
attributes not only on regular files but also on special ones. This
is not possible with FS_IOC_FSSETXATTR ioctl as with special files
we can not call ioctl() directly on the filesystem inode using fd.

This patch adds two new syscalls which allows userspace to get/set
extended inode attributes on special files by using parent directory
and a path - *at() like syscall.

CC: linux-api@vger.kernel.org
CC: linux-fsdevel@vger.kernel.org
CC: linux-xfs@vger.kernel.org
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
Link: https://lore.kernel.org/20250630-xattrat-syscall-v6-6-c4e3bc35227b@kernel.org
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Christian Brauner <brauner@kernel.org>
2025-07-02 17:05:17 +02:00
..
atomic
bash-completion
basic
clang-tools
coccinelle
dtc
dummy-tools
gcc-plugins hardening fixes for v6.16-rc1 (take 2) 2025-06-01 11:37:01 -07:00
gdb - The 3 patch series "hung_task: extend blocking task stacktrace dump to 2025-05-31 19:12:53 -07:00
gendwarfksyms
genksyms genksyms: Fix enum consts from a reference affecting new values 2025-06-07 14:38:07 +09:00
include
ipe
kconfig kconfig: introduce menu type enum 2025-06-06 05:40:25 +09:00
ksymoops
lib
mod
package
selinux
tracing
.gitignore
as-version.sh
asn1_compiler.c
bloat-o-meter
bootgraph.pl
bpf_doc.py
build-version
cc-can-link.sh
cc-version.sh
check-git
check-sysctl-docs
check-uapi.sh
check-variable-fonts.sh
check_extable.sh
checkdeclares.pl
checkincludes.pl
checkkconfigsymbols.py
checkpatch.pl - The 3 patch series "hung_task: extend blocking task stacktrace dump to 2025-05-31 19:12:53 -07:00
checkstack.pl
checksyscalls.sh
checktransupdate.py
checkversion.pl
cleanfile
cleanpatch
coccicheck
config
const_structs.checkpatch
decode_stacktrace.sh
decodecode
depmod.sh
dev-needs.sh
diffconfig
documentation-file-ref-check
extract-fwblobs
extract-ikconfig
extract-module-sig.pl
extract-sys-certs.pl
extract-vmlinux
extract_xc3028.pl
faddr2line
file-size.sh
find-unused-docs.sh
gen-crc-consts.py
gen-randstruct-seed.sh
gen_packed_field_checks.c
generate_builtin_ranges.awk
generate_initcall_order.pl
generate_rust_analyzer.py
generate_rust_target.rs
get_abi.py
get_dvb_firmware
get_feat.pl
get_maintainer.pl
gfp-translate
git-resolve.sh
git.orderFile
head-object-list.txt
headerdep.pl
headers_install.sh
insert-sys-cert.c
install.sh
integer-wrap-ignore.scl
jobserver-exec
kallsyms.c
Kbuild.include
Kconfig.include
kernel-doc
kernel-doc.pl
kernel-doc.py
ld-version.sh
leaking_addresses.pl
Lindent
link-vmlinux.sh
macro_checker.py
make_fit.py
Makefile
Makefile.asm-headers
Makefile.autofdo
Makefile.btf
Makefile.build Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
Makefile.clang
Makefile.clean
Makefile.compiler require gcc-8 and binutils-2.30 2025-05-31 08:16:52 -07:00
Makefile.debug
Makefile.defconf
Makefile.dtbinst
Makefile.dtbs
Makefile.extrawarn
Makefile.gcc-plugins require gcc-8 and binutils-2.30 2025-05-31 08:16:52 -07:00
Makefile.headersinst
Makefile.host
Makefile.kasan
Makefile.kcov - The 2 patch series "zram: support algorithm-specific parameters" from 2025-06-02 16:00:26 -07:00
Makefile.kcsan
Makefile.kmsan
Makefile.lib Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
Makefile.modfinal
Makefile.modinst
Makefile.modpost
Makefile.package
Makefile.propeller
Makefile.randstruct
Makefile.ubsan ARM: 2025-05-29 08:10:01 -07:00
Makefile.userprogs
Makefile.vdsoinst
Makefile.vmlinux
Makefile.vmlinux_o
makelst
markup_oops.pl
min-tool-version.sh
misc-check scripts/misc-check: check unnecessary #include <linux/export.h> when W=1 2025-06-06 05:40:25 +09:00
mkcompile_h
mksysmap
mkuboot.sh
module-common.c
module.lds.S
modules-check.sh
nsdeps
objdiff
objdump-func
orc_hash.sh
pahole-version.sh
parse-maintainers.pl
patch-kernel
profile2linkerlist.pl
prune-kernel
recordmcount.c
recordmcount.h
recordmcount.pl
relocs_check.sh
remove-stale-files
rust_is_available.sh
rust_is_available_bindgen_0_66.h
rust_is_available_bindgen_libclang.h
rust_is_available_bindgen_libclang_concat.h
rust_is_available_test.py
rustc-llvm-version.sh
rustc-version.sh
rustdoc_test_builder.rs
rustdoc_test_gen.rs
setlocalversion
show_delta
sign-file.c
sorttable.c
spdxcheck-test.sh
spdxcheck.py
spdxexclude
spelling.txt
sphinx-pre-install
split-man.pl
ssl-common.h
stackdelta
stackusage
subarch.include
syscall.tbl fs: introduce file_getattr and file_setattr syscalls 2025-07-02 17:05:17 +02:00
syscallhdr.sh
syscallnr.sh
syscalltbl.sh
tags.sh scripts/tags.sh: allow to use alternative ctags implementation 2025-06-06 05:40:25 +09:00
tools-support-relr.sh
unifdef.c
ver_linux
verify_builtin_ranges.awk
xen-hypercalls.sh
xz_wrap.sh