From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 647EE38582A2 for ; Mon, 4 Jul 2022 21:36:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 647EE38582A2 Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-250-R1p7ZfBGPUy0UjA7wlqW6g-1; Mon, 04 Jul 2022 17:36:15 -0400 X-MC-Unique: R1p7ZfBGPUy0UjA7wlqW6g-1 Received: by mail-qk1-f197.google.com with SMTP id o13-20020a05620a2a0d00b006b46c5414b0so2425777qkp.23 for ; Mon, 04 Jul 2022 14:36:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:references:from:organization:in-reply-to :content-transfer-encoding; bh=Gfzi/HoYQnheoyHP5CSJeUgLE8FcCruRLBcX392KLcE=; b=nJ1Cwm6nXtXOzG424QSjefDLjL05yIJ2pHD8W2f7lakOfG6tG7XGIIWNq3TBckJpVb F8CDuO0sTpbqZkKGWslMh5wr9tdpdPZ37Oq24KdvSStWa3IDBRX1DKQx7TEwBk/oibdY Zgan1Rg4QjNAvSYhNeySdIYa6J41Dxx1wWw0CEEz0o50tRO0nies/3sPgR3H+lCFlGHo 2cdBatZ/mq1foxQ+BYfHo/MHiIO0HEBIKOf6tWUD2/xkQu/x2w9xvOpIAvO/ZxpOqWDn QMG30C6Rwy0GH2LlWOE/EV0n0ssL8/ulGh3rDX6hTibp9xlrnrZAxFyDy6driw7l+4R/ b6CQ== X-Gm-Message-State: AJIora/MBmrCKOakUrvObSPf8YX4QZTO6QaAYVMwZDPvGiM3y+cf+dgW 9py/+rUwwVU8rusrOD7K/ZsIQ8AW4VspTgNTFUWwMgOfAbHKciCRhQqNnNQzPuPeH82fcaUXN03 crZXbxFv0+Lha3UtIX3jg X-Received: by 2002:a05:620a:4305:b0:6a9:3829:c03 with SMTP id u5-20020a05620a430500b006a938290c03mr19707595qko.363.1656970574824; Mon, 04 Jul 2022 14:36:14 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uFs8ELb3eQa7TL3DnO/TJcb9ZEeIpLQFCJz5E0aenOiFRrGDcaIWwlYwqpms1D4nOshTua5g== X-Received: by 2002:a05:620a:4305:b0:6a9:3829:c03 with SMTP id u5-20020a05620a430500b006a938290c03mr19707576qko.363.1656970574447; Mon, 04 Jul 2022 14:36:14 -0700 (PDT) Received: from [192.168.0.241] (135-23-175-80.cpe.pppoe.ca. [135.23.175.80]) by smtp.gmail.com with ESMTPSA id bl34-20020a05620a1aa200b006af34a1a897sm19138627qkb.65.2022.07.04.14.36.13 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 04 Jul 2022 14:36:13 -0700 (PDT) Message-ID: Date: Mon, 4 Jul 2022 17:36:12 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0 Subject: Re: [PATCH v7 1/5] linux: Add fsconfig To: Adhemerval Zanella , libc-alpha@sourceware.org References: <20220624195919.435424-1-adhemerval.zanella@linaro.org> <20220624195919.435424-2-adhemerval.zanella@linaro.org> From: Carlos O'Donell Organization: Red Hat In-Reply-To: <20220624195919.435424-2-adhemerval.zanella@linaro.org> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-16.2 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Jul 2022 21:36:20 -0000 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 > --- > 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.