From: Carlos O'Donell <carlos@redhat.com>
To: Adhemerval Zanella <adhemerval.zanella@linaro.org>,
libc-alpha@sourceware.org
Subject: Re: [PATCH v7 1/5] linux: Add fsconfig
Date: Mon, 4 Jul 2022 17:36:12 -0400 [thread overview]
Message-ID: <f8968aca-1888-c3e1-2006-0d14d63aa4e1@redhat.com> (raw)
In-Reply-To: <20220624195919.435424-2-adhemerval.zanella@linaro.org>
On 6/24/22 15:59, Adhemerval Zanella wrote:
> It was added on Linux 5.2 (ecdab150fddb42fe6a739335257949220033b782)
> as a way to a configure filesystem creation context and trigger
> actions upon it, to be used in conjunction with fsopen, fspick and
> fsmount.
>
> The fsconfig_command commands are currently only defined as an enum,
> so they can't be checked on tst-mount-consts.py with current test
> support.
LGTM. API uses const void * correctly and syscall wrapper signature matches.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
> ---
> NEWS | 8 +++---
> sysdeps/unix/sysv/linux/Versions | 1 +
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 1 +
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 1 +
> sysdeps/unix/sysv/linux/arc/libc.abilist | 1 +
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 1 +
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 1 +
> sysdeps/unix/sysv/linux/csky/libc.abilist | 1 +
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 1 +
> sysdeps/unix/sysv/linux/i386/libc.abilist | 1 +
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 1 +
> .../sysv/linux/m68k/coldfire/libc.abilist | 1 +
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 1 +
> .../sysv/linux/microblaze/be/libc.abilist | 1 +
> .../sysv/linux/microblaze/le/libc.abilist | 1 +
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 1 +
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 1 +
> .../sysv/linux/mips/mips64/n32/libc.abilist | 1 +
> .../sysv/linux/mips/mips64/n64/libc.abilist | 1 +
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 1 +
> sysdeps/unix/sysv/linux/or1k/libc.abilist | 1 +
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 1 +
> .../powerpc/powerpc32/nofpu/libc.abilist | 1 +
> .../linux/powerpc/powerpc64/be/libc.abilist | 1 +
> .../linux/powerpc/powerpc64/le/libc.abilist | 1 +
> .../unix/sysv/linux/riscv/rv32/libc.abilist | 1 +
> .../unix/sysv/linux/riscv/rv64/libc.abilist | 1 +
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 1 +
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 1 +
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 1 +
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 1 +
> .../sysv/linux/sparc/sparc32/libc.abilist | 1 +
> .../sysv/linux/sparc/sparc64/libc.abilist | 1 +
> sysdeps/unix/sysv/linux/sys/mount.h | 26 +++++++++++++++++++
> sysdeps/unix/sysv/linux/syscalls.list | 1 +
> sysdeps/unix/sysv/linux/tst-mount-consts.py | 2 ++
> .../unix/sysv/linux/x86_64/64/libc.abilist | 1 +
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 1 +
> 38 files changed, 67 insertions(+), 4 deletions(-)
>
> diff --git a/NEWS b/NEWS
> index b0a3d7e512..83bb660429 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -41,10 +41,10 @@ Major new features:
> have adverse impact. It is incompatible with EDNS0 usage and DNSSEC
> validation by applications.
>
> -* On Linux, the fsopen, fsmount, and move_mount functions have been added.
> - They are part of the new Linux kernel mount APIs that allow applications
> - to more flexibly configure and operate on filesystem mounts. The new
> - mount APIs are specifically designed to work with namespaces.
> +* On Linux, the fsopen, fsmount, move_mount, and fsconfig functions have
> + been added. They are part of the new Linux kernel mount APIs that allow
> + applications to more flexibly configure and operate on filesystem mounts.
> + The new mount APIs are specifically designed to work with namespaces.
>
> Deprecated and removed features, and other changes affecting compatibility:
>
> diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
> index 26d552ba3b..831a366492 100644
> --- a/sysdeps/unix/sysv/linux/Versions
> +++ b/sysdeps/unix/sysv/linux/Versions
> @@ -300,6 +300,7 @@ libc {
> epoll_pwait2;
> }
> GLIBC_2.36 {
> + fsconfig;
> fsmount;
> fsopen;
> move_mount;
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 8dba065b81..0b8699dd94 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -2616,6 +2616,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 08f4750022..dbc552de45 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2713,6 +2713,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 75db763023..b8411014f0 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -2377,6 +2377,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index fa33f317ac..618467399b 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -496,6 +496,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index dba2e4ce42..3afbd61ba3 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -493,6 +493,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index e6ff921c29..189835a12f 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -2652,6 +2652,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 8a40cece83..41d645f3a0 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2601,6 +2601,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index a89826049f..c39a33655a 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2785,6 +2785,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index d1d96b7469..611b31fc1d 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2551,6 +2551,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 63a62f267a..8504a94c75 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -497,6 +497,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index f68325f9bc..2cf5ca75d2 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2728,6 +2728,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 247af2075c..667098908d 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -2701,6 +2701,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index b0ac3f9009..a131265c9c 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -2698,6 +2698,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index b22cd6bf2f..9a083512f7 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2693,6 +2693,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 12fc2cce3e..71b952dc6a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2691,6 +2691,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index d3e96dfd43..f824d143fa 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2699,6 +2699,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index cb58ed4db0..70ff16e752 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2602,6 +2602,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 61ad58a599..e3e30f9f72 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -2740,6 +2740,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/or1k/libc.abilist b/sysdeps/unix/sysv/linux/or1k/libc.abilist
> index 1260dc4e2e..c2c6c1678f 100644
> --- a/sysdeps/unix/sysv/linux/or1k/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/or1k/libc.abilist
> @@ -2123,6 +2123,7 @@ GLIBC_2.35 wprintf F
> GLIBC_2.35 write F
> GLIBC_2.35 writev F
> GLIBC_2.35 wscanf F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 363939762c..0ca95aa512 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2755,6 +2755,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index f512ad8baf..2256356cdb 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2788,6 +2788,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index c9bdc9859c..b27e3b9c7c 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2510,6 +2510,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index f091be30bd..ac3897e8c6 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -2812,6 +2812,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 7ea73f9af8..f7abfd54e3 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -2379,6 +2379,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 333fa62714..d4ba82b0a7 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -2579,6 +2579,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index a867467b12..e15c8f1c50 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2753,6 +2753,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index dbad5b3163..3f74bf6af0 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2547,6 +2547,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 6f755cc173..e9610718d2 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2608,6 +2608,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 77d936aa3c..754c495a6f 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2605,6 +2605,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 09bb4363e1..368a9177e3 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2748,6 +2748,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 9df9cb6adb..d644201962 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2574,6 +2574,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h
> index 50ec65c7a3..ef2c72f31c 100644
> --- a/sysdeps/unix/sysv/linux/sys/mount.h
> +++ b/sysdeps/unix/sysv/linux/sys/mount.h
> @@ -163,6 +163,27 @@ enum
> #define MOVE_MOUNT_T_EMPTY_PATH 0x00000040 /* Empty to path permitted */
> #define MOVE_MOUNT_SET_GROUP 0x00000100 /* Set sharing group instead */
>
> +/* The type of fsconfig call made. */
> +enum fsconfig_command
> +{
> + FSCONFIG_SET_FLAG = 0, /* Set parameter, supplying no value */
> +#define FSCONFIG_SET_FLAG FSCONFIG_SET_FLAG
> + FSCONFIG_SET_STRING = 1, /* Set parameter, supplying a string value */
> +#define FSCONFIG_SET_STRING FSCONFIG_SET_STRING
> + FSCONFIG_SET_BINARY = 2, /* Set parameter, supplying a binary blob value */
> +#define FSCONFIG_SET_BINARY FSCONFIG_SET_BINARY
> + FSCONFIG_SET_PATH = 3, /* Set parameter, supplying an object by path */
> +#define FSCONFIG_SET_PATH FSCONFIG_SET_PATH
> + FSCONFIG_SET_PATH_EMPTY = 4, /* Set parameter, supplying an object by (empty) path */
> +#define FSCONFIG_SET_PATH_EMPTY FSCONFIG_SET_PATH_EMPTY
> + FSCONFIG_SET_FD = 5, /* Set parameter, supplying an object by fd */
> +#define FSCONFIG_SET_FD FSCONFIG_SET_FD
> + FSCONFIG_CMD_CREATE = 6, /* Invoke superblock creation */
> +#define FSCONFIG_CMD_CREATE FSCONFIG_CMD_CREATE
> + FSCONFIG_CMD_RECONFIGURE = 7, /* Invoke superblock reconfiguration */
> +#define FSCONFIG_CMD_RECONFIGURE FSCONFIG_CMD_RECONFIGURE
> +};
> +
>
> __BEGIN_DECLS
>
> @@ -193,6 +214,11 @@ extern int move_mount (int __from_dfd, const char *__from_pathname,
> int __to_dfd, const char *__to_pathname,
> unsigned int flags) __THROW;
>
> +/* Set parameters and trigger CMD action on the FD context. KEY, VALUE,
> + and AUX are used depending ng of the CMD. */
> +extern int fsconfig (int __fd, unsigned int __cmd, const char *__key,
> + const void *__value, int __aux) __THROW;
OK. int, unsigned int, const char *, const void *, int.
> +
> __END_DECLS
>
> #endif /* _SYS_MOUNT_H */
> diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
> index 7368210cd1..b2c8df5278 100644
> --- a/sysdeps/unix/sysv/linux/syscalls.list
> +++ b/sysdeps/unix/sysv/linux/syscalls.list
> @@ -12,6 +12,7 @@ epoll_ctl EXTRA epoll_ctl i:iiip epoll_ctl
> eventfd EXTRA eventfd2 i:ii eventfd
> execve - execve i:spp __execve execve
> flock - flock i:ii __flock flock
> +fsconfig EXTRA fsconfig i:iUsNi fsconfig
OK. i:iUsNi
> fsmount EXTRA fsmount i:iUU fsmount
> fsopen EXTRA fsopen i:sU fsopen
> get_kernel_syms EXTRA get_kernel_syms i:p __compat_get_kernel_syms get_kernel_syms@GLIBC_2.0:GLIBC_2.23
> diff --git a/sysdeps/unix/sysv/linux/tst-mount-consts.py b/sysdeps/unix/sysv/linux/tst-mount-consts.py
> index aa9c02796e..dd4d50f202 100755
> --- a/sysdeps/unix/sysv/linux/tst-mount-consts.py
> +++ b/sysdeps/unix/sysv/linux/tst-mount-consts.py
> @@ -49,6 +49,8 @@ def main():
> linux_version_glibc > linux_version_headers,
> linux_version_headers > linux_version_glibc)
>
> + # Skip testing FS_CONFIG commands since they are only enums in the kernel
> + # header.
> status = max(
> check('FSOPEN_.*'),
> check('FSMOUNT_.*'),
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 4829450ad0..0ff913610c 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2525,6 +2525,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index caea228bcb..2aa67048ac 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -2631,6 +2631,7 @@ GLIBC_2.35 __memcmpeq F
> GLIBC_2.35 _dl_find_object F
> GLIBC_2.35 epoll_pwait2 F
> GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
> +GLIBC_2.36 fsconfig F
> GLIBC_2.36 fsmount F
> GLIBC_2.36 fsopen F
> GLIBC_2.36 move_mount F
--
Cheers,
Carlos.
next prev parent reply other threads:[~2022-07-04 21:36 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-24 19:59 [PATCH v7 0/5] linux: Add new syscalls Adhemerval Zanella
2022-06-24 19:59 ` [PATCH v7 1/5] linux: Add fsconfig Adhemerval Zanella
2022-07-04 21:36 ` Carlos O'Donell [this message]
2022-07-11 8:16 ` Fangrui Song
2022-07-11 14:47 ` Carlos O'Donell
2022-06-24 19:59 ` [PATCH v7 2/5] linux: Add fspick Adhemerval Zanella
2022-07-04 21:39 ` Carlos O'Donell
2022-06-24 19:59 ` [PATCH v7 3/5] linux: Add open_tree Adhemerval Zanella
2022-07-04 21:42 ` Carlos O'Donell
2022-06-24 19:59 ` [PATCH v7 4/5] linux: Add tst-mount to check for Linux new mount API Adhemerval Zanella
2022-07-04 21:45 ` Carlos O'Donell
2022-06-24 19:59 ` [PATCH v7 5/5] linux: Add mount_setattr Adhemerval Zanella
2022-07-04 21:51 ` Carlos O'Donell
2022-07-06 9:25 ` Andreas Schwab
2022-07-06 12:21 ` Adhemerval Zanella
2022-07-10 2:28 ` Rudi Heitbaum
2022-07-11 12:51 ` Adhemerval Zanella
2022-07-11 13:13 ` Rudi Heitbaum
2022-07-12 13:11 ` Rudi Heitbaum
2022-07-12 15:33 ` Adhemerval Zanella Netto
2022-07-11 8:30 ` Andreas Schwab
2022-07-11 8:55 ` Florian Weimer
2022-07-11 12:49 ` Adhemerval Zanella
2022-07-11 12:53 ` Florian Weimer
2022-07-25 15:08 ` Andreas Schwab
2022-07-26 0:28 ` Rudi Heitbaum
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=f8968aca-1888-c3e1-2006-0d14d63aa4e1@redhat.com \
--to=carlos@redhat.com \
--cc=adhemerval.zanella@linaro.org \
--cc=libc-alpha@sourceware.org \
/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).