From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi1-x22a.google.com (mail-oi1-x22a.google.com [IPv6:2607:f8b0:4864:20::22a]) by sourceware.org (Postfix) with ESMTPS id 108FF3834E61 for ; Wed, 22 Jun 2022 12:41:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 108FF3834E61 Received: by mail-oi1-x22a.google.com with SMTP id bd16so20976624oib.6 for ; Wed, 22 Jun 2022 05:41:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=eijm2fBDnT82FkCkwNyaR+ESU9olb4LHTJCtk0EshtU=; b=d9dc7zOw0pCZbcdCcPbLwWGgSvAgzFChre42+DI3yUbVgcvtf3zkHLgUhgs3bctB3R as21A7IJWMpmSY05ackPHpPFHmJEZ+TmNymDc6D7dNS+dmXg5zLZli9ZFUGP0i8o/M84 +v1iKQPN7ygdHG6vl3vAxquedKIGMnoKGoaJ1q9BpHPfGDjCNDtK708lUKmzEpXgkt5D 8iyo2W7H2W0z2zEPWT3ztnXKHRN+pKCFXMqL2IqS2znIrnbimnFUz7hKmeaKMKgY6UPd 43CHS5rXkvtnOZIAFHCpcDulDvKjYdLY5VJsmbK0v+eHhgZn5qWt5xJxi+V/RTBzgXFe kVCQ== X-Gm-Message-State: AJIora/8IZO4Y/2zofT5pb0TS7z+Eib5lFAOnn9vE1v8nPiuS+2iOO6g ecAMSDPCNSkzswsIW71YaUggxZHUsMni9B7v X-Google-Smtp-Source: AGRyM1v5R8fDBhgLwDm9ZeI3lDCOOxh1Myod9TQ58BxRgyCSsY/UY2qoptox/O8wtt7BcMji2B5eDg== X-Received: by 2002:a05:6808:d4c:b0:32f:361d:638f with SMTP id w12-20020a0568080d4c00b0032f361d638fmr1838158oik.100.1655901697155; Wed, 22 Jun 2022 05:41:37 -0700 (PDT) Received: from smtpclient.apple ([2804:431:c7ca:6d95:c8b8:d3db:a84b:32db]) by smtp.gmail.com with ESMTPSA id b23-20020a9d5d17000000b006168dbb001fsm414573oti.7.2022.06.22.05.41.35 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 22 Jun 2022 05:41:36 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.100.31\)) Subject: Re: [PATCH v5 2/8] linux: Add fsmount From: Adhemerval Zanella In-Reply-To: Date: Wed, 22 Jun 2022 09:41:34 -0300 Cc: libc-alpha@sourceware.org Content-Transfer-Encoding: quoted-printable Message-Id: <99C17693-C9B4-4966-AD9A-196C6A521EB4@linaro.org> References: <20220606134432.1944534-1-adhemerval.zanella@linaro.org> <20220606134432.1944534-3-adhemerval.zanella@linaro.org> To: Carlos O'Donell X-Mailer: Apple Mail (2.3696.100.31) X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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: Wed, 22 Jun 2022 12:41:41 -0000 > On 18 Jun 2022, at 03:15, Carlos O'Donell wrote: >=20 > On 6/6/22 09:44, Adhemerval Zanella wrote: >> It was added on 5.2 (93766fbd2696c2c4453dd8e1070977e9cd4e6b6d) to >> provide a way by which a filesystem opened with fsopen and configured >> by a series of fsconfig calls can have a detached mount object >> created for it. >=20 > Suggest v6 with updated NEWS. Everything else looks good and matches = the kernel. >=20 > Tested-by: Carlos O'Donell Ack. >=20 >> --- >> NEWS | 4 ++-- >> 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 | 21 +++++++++++++++++++ >> sysdeps/unix/sysv/linux/syscalls.list | 1 + >> sysdeps/unix/sysv/linux/tst-mount-consts.py | 6 +++++- >> .../unix/sysv/linux/x86_64/64/libc.abilist | 1 + >> .../unix/sysv/linux/x86_64/x32/libc.abilist | 1 + >> 38 files changed, 63 insertions(+), 3 deletions(-) >>=20 >> diff --git a/NEWS b/NEWS >> index a94e8c0124..51ca68f1da 100644 >> --- a/NEWS >> +++ b/NEWS >> @@ -29,8 +29,8 @@ Major new features: >> memory is carried out in the context of the caller, using the = caller's >> CPU affinity, and priority with CPU usage accounted to the caller. >>=20 >> -* On Linux, the fsopen has been added. It is a new mount API to = allow >> - more flexibility on mount operations, specially when used along >> +* On Linux, the fsopen and fsmound have been added. It is a new = mount API >> + to allow more flexibility on mount operations, specially when used = along >> namespaces. >=20 > Suggest: >=20 > * On Linux, the fsopen and fsmount 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. Ack. >=20 >>=20 >> Deprecated and removed features, and other changes affecting = compatibility: >> diff --git a/sysdeps/unix/sysv/linux/Versions = b/sysdeps/unix/sysv/linux/Versions >> index 9ff750ac09..1d5b15aec4 100644 >> --- a/sysdeps/unix/sysv/linux/Versions >> +++ b/sysdeps/unix/sysv/linux/Versions >> @@ -300,6 +300,7 @@ libc { >> epoll_pwait2; >> } >> GLIBC_2.36 { >> + fsmount; >=20 > OK. >=20 >> fsopen; >> pidfd_open; >> pidfd_getfd; >> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist = b/sysdeps/unix/sysv/linux/aarch64/libc.abilist >> index dedb69abda..bcad128067 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist = b/sysdeps/unix/sysv/linux/alpha/libc.abilist >> index 67c7c43190..1d88271a25 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist = b/sysdeps/unix/sysv/linux/arc/libc.abilist >> index 6b478b9461..c4cc3c17f0 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist = b/sysdeps/unix/sysv/linux/arm/be/libc.abilist >> index 45af999b89..cfec9daf7a 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist = b/sysdeps/unix/sysv/linux/arm/le/libc.abilist >> index 5abdfbd677..b77416d32f 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist = b/sysdeps/unix/sysv/linux/csky/libc.abilist >> index 1b560da21f..76261943fb 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist = b/sysdeps/unix/sysv/linux/hppa/libc.abilist >> index 09397be929..29352b69ac 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist = b/sysdeps/unix/sysv/linux/i386/libc.abilist >> index a3b95efa36..9c465ec784 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist = b/sysdeps/unix/sysv/linux/ia64/libc.abilist >> index 840aa669e5..ad1268e61f 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist = b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist >> index 8901429800..c63c140612 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist = b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist >> index 5d3ccb254f..937ac25d40 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist = b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist >> index 651d7e65f8..d144df6ace 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist = b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist >> index c507fbd83b..87ff6f261f 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist = b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist >> index eef92ef698..b0d2b88f14 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist = b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist >> index 92634e2910..2ed23ce297 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist = b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist >> index 5a6a1b8bcd..0048a23416 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist = b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist >> index 0fdf5ff93b..4b10b6bec2 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist = b/sysdeps/unix/sysv/linux/nios2/libc.abilist >> index e219863360..8f905a8def 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/or1k/libc.abilist = b/sysdeps/unix/sysv/linux/or1k/libc.abilist >> index 8fef5e2ab8..60c2cdb6e2 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git = a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist = b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist >> index d8a5c77db1..ac5453d9c1 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git = a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist = b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist >> index 18cb35378d..772b6d2587 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git = a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist = b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist >> index e144bb4167..bcf1ed9a1c 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git = a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist = b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist >> index 1f283236cd..cf4452775f 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist = b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist >> index f76f47d017..48aaada19d 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist = b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist >> index 93517ae3d6..e08ddc8627 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist = b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist >> index 4d2c9ed035..c315714ed8 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist = b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist >> index 71bb7af685..9d83b3cf7d 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist = b/sysdeps/unix/sysv/linux/sh/be/libc.abilist >> index a040860010..8e10946936 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist = b/sysdeps/unix/sysv/linux/sh/le/libc.abilist >> index 10b7fa3560..6b4d8047c9 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist = b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist >> index e859089b64..d222061590 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist = b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist >> index 4347e399d6..a8eb190e46 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/sys/mount.h = b/sysdeps/unix/sysv/linux/sys/mount.h >> index 56da283d3f..9fa39c7d09 100644 >> --- a/sysdeps/unix/sysv/linux/sys/mount.h >> +++ b/sysdeps/unix/sysv/linux/sys/mount.h >> @@ -137,6 +137,22 @@ enum >> /* fsopen flags. */ >> #define FSOPEN_CLOEXEC 0x00000001 >>=20 >> +/* fsmount flags. */ >> +#define FSMOUNT_CLOEXEC 0x00000001 >=20 > OK. Correct value. >=20 >> + >> +/* mount attributes used on fsmount. */ >> +#define MOUNT_ATTR_RDONLY 0x00000001 /* Mount read-only. */ >> +#define MOUNT_ATTR_NOSUID 0x00000002 /* Ignore suid and sgid bits. = */ >> +#define MOUNT_ATTR_NODEV 0x00000004 /* Disallow access to device = special files. */ >> +#define MOUNT_ATTR_NOEXEC 0x00000008 /* Disallow program execution. = */ >> +#define MOUNT_ATTR__ATIME 0x00000070 /* Setting on how atime should = be updated. */ >> +#define MOUNT_ATTR_RELATIME 0x00000000 /* - Update atime relative to = mtime/ctime. */ >> +#define MOUNT_ATTR_NOATIME 0x00000010 /* - Do not update access = times. */ >> +#define MOUNT_ATTR_STRICTATIME 0x00000020 /* - Always perform atime = updates */ >> +#define MOUNT_ATTR_NODIRATIME 0x00000080 /* Do not update directory = access times. */ >=20 > OK. These were added in v5.2. Values verified. >=20 >> +#define MOUNT_ATTR_IDMAP 0x00100000 /* Idmap mount to @userns_fd in = struct mount_attr. */ >> +#define MOUNT_ATTR_NOSYMFOLLOW 0x00200000 /* Do not follow symlinks. = */ >=20 > OK. These were added later. Values verified. >=20 >> + >>=20 >> __BEGIN_DECLS >>=20 >> @@ -155,6 +171,11 @@ extern int umount2 (const char *__special_file, = int __flags) __THROW; >> mouting. */ >> extern int fsopen (const char *__fs_name, unsigned int __flags) = __THROW; >>=20 >> +/* Create a mount representation for the FD created by fsopen using >> + FLAGS with ATTR_FLAGS describing who the mount is to be performed. = */ >> +extern int fsmount (int __fd, unsigned int __flags, >> + unsigned int __ms_flags) __THROW; >=20 > OK. Returns int. Takes int, unsigned int, unsigned int [OK]. >=20 >> + >> __END_DECLS >>=20 >> #endif /* _SYS_MOUNT_H */ >> diff --git a/sysdeps/unix/sysv/linux/syscalls.list = b/sysdeps/unix/sysv/linux/syscalls.list >> index a2919f433d..4ac6fe7659 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 >> +fsmount EXTRA fsmount i:iUU fsmount >=20 > OK. i:iUU. >=20 >> 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 >> getpid - getpid Ei: __getpid getpid >> diff --git a/sysdeps/unix/sysv/linux/tst-mount-consts.py = b/sysdeps/unix/sysv/linux/tst-mount-consts.py >> index 162b01147d..4d4a234f3a 100755 >> --- a/sysdeps/unix/sysv/linux/tst-mount-consts.py >> +++ b/sysdeps/unix/sysv/linux/tst-mount-consts.py >> @@ -46,7 +46,11 @@ def main(): >> linux_version_glibc > linux_version_headers, >> linux_version_headers > linux_version_glibc) >>=20 >> - status =3D check('FSOPEN_.*') >> + status =3D max( >> + check('FSOPEN_.*'), >> + check('FSMOUNT_.*'), >> + # MOUNT_ATTR_SIZE_VER0 is used for mount_setattr. >> + check('MOUNT_ATTR_.*', 'MOUNT_ATTR_SIZE_VER0')) >=20 > OK. >=20 >> sys.exit(status) >>=20 >> if __name__ =3D=3D '__main__': >> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist = b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist >> index 65e5d2150d..0293b05d12 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist = b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist >> index 4c6371b3c4..be216f4686 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 fsmount F >> GLIBC_2.36 fsopen F >> GLIBC_2.36 pidfd_getfd F >> GLIBC_2.36 pidfd_open F >=20 >=20 > --=20 > Cheers, > Carlos.