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.129.124]) by sourceware.org (Postfix) with ESMTPS id 4185038582A2 for ; Mon, 4 Jul 2022 21:42:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4185038582A2 Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-529-uBJwKcTuM2mcKMV-Lv7uUQ-1; Mon, 04 Jul 2022 17:42:38 -0400 X-MC-Unique: uBJwKcTuM2mcKMV-Lv7uUQ-1 Received: by mail-qt1-f197.google.com with SMTP id cr13-20020a05622a428d00b0031d3463f241so7614803qtb.8 for ; Mon, 04 Jul 2022 14:42: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:message-id:date:mime-version:user-agent:subject :content-language:to:references:from:organization:in-reply-to :content-transfer-encoding; bh=zjXRasIkfSIh7KKZDEuRM/apbClp32GorkQqVOuNHso=; b=kYSFqjLs4yAQBSpPpABd6gcL8MhDlGcFGoEVpGM5G99btzcc83LIQX+gHpkpXkivmr 5/oKouKLLgVGBG2bgT0932sgKt+89aemgGOukikeAnRrv2hZLTJG51zh8RVBjRbT41ym rn3ZVelDBZBx3yMcHEOoA/I5GeOU2OiqNwMQCg6mIRmPE+8HpUCpeQfc/F8IqR72+p1b glhX0RZrSet6WUh4oREIpqD7cXBhbahMY3D8ercYztCDFRNctlusFEaa6QGOeg+olf3A lCD3roAjk2uYD9sFE2lT17yrrphdTAGIV33aQ43cCyqO8E5r8dH0mfUPbmFmpp0QFNlk focA== X-Gm-Message-State: AJIora/M3S+oeCa3BiHjRQKmoZYmkFEdyZw5cdiT/NGUPitMvUl98qKe oCGzjFsdqNYnIbMSEXD5fWqFY5a5kDQm9eZ2IqOKokrR/c7rlwkckxKrvKSC+1zZrz7SkuZHirk eq7cXmwxud0yU9sbRSdCL X-Received: by 2002:a05:6214:ac1:b0:472:a974:59b9 with SMTP id g1-20020a0562140ac100b00472a97459b9mr23404671qvi.130.1656970957997; Mon, 04 Jul 2022 14:42:37 -0700 (PDT) X-Google-Smtp-Source: AGRyM1v7S9pwH1B0HA5TXD7Ni6tuuPLdjSl/k4KrMpYtbu4RrkwzbwnqSnL+Qjj8e5CDiD5XHH+WJg== X-Received: by 2002:a05:6214:ac1:b0:472:a974:59b9 with SMTP id g1-20020a0562140ac100b00472a97459b9mr23404659qvi.130.1656970957605; Mon, 04 Jul 2022 14:42:37 -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 z3-20020a05622a124300b00316a384447fsm21190103qtx.16.2022.07.04.14.42.36 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 04 Jul 2022 14:42:37 -0700 (PDT) Message-ID: <88f08cc7-8cd9-ce06-5ba9-6d522f7915c1@redhat.com> Date: Mon, 4 Jul 2022 17:42:35 -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 3/5] linux: Add open_tree To: Adhemerval Zanella , libc-alpha@sourceware.org References: <20220624195919.435424-1-adhemerval.zanella@linaro.org> <20220624195919.435424-4-adhemerval.zanella@linaro.org> From: Carlos O'Donell Organization: Red Hat In-Reply-To: <20220624195919.435424-4-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.5 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_LOW, 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:42:43 -0000 On 6/24/22 15:59, Adhemerval Zanella wrote: > It was added on Linux 5.2 (a07b20004793d8926f78d63eb5980559f7813404) > to return a O_PATH-opened file descriptor to an existing mountpoint. LGTM. Matches kernel API. Reviewed-by: Carlos O'Donell > --- > NEWS | 10 +++++----- > 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 + > sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 1 + > sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 1 + > sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 1 + > sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 1 + > sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist | 1 + > sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 1 + > sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 1 + > sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 1 + > sysdeps/unix/sysv/linux/nios2/libc.abilist | 1 + > sysdeps/unix/sysv/linux/or1k/libc.abilist | 1 + > .../unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 1 + > .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist | 1 + > .../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist | 1 + > .../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 1 + > sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 1 + > sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 1 + > sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 1 + > sysdeps/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 + > sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 1 + > sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 1 + > sysdeps/unix/sysv/linux/sys/mount.h | 9 +++++++++ > sysdeps/unix/sysv/linux/syscalls.list | 1 + > sysdeps/unix/sysv/linux/tst-mount-consts.py | 3 ++- > sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 1 + > sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 1 + > 38 files changed, 51 insertions(+), 6 deletions(-) > > diff --git a/NEWS b/NEWS > index 9557b15f4a..f52718aa77 100644 > --- a/NEWS > +++ b/NEWS > @@ -41,11 +41,11 @@ Major new features: > have adverse impact. It is incompatible with EDNS0 usage and DNSSEC > validation by applications. > > -* On Linux, the fsopen, fsmount, move_mount, fsconfig, and fspick 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, fsconfig, fspick, and open_tree > + 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. OK. > > Deprecated and removed features, and other changes affecting compatibility: > > diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions > index 7bc5861513..b70530ef40 100644 > --- a/sysdeps/unix/sysv/linux/Versions > +++ b/sysdeps/unix/sysv/linux/Versions > @@ -305,6 +305,7 @@ libc { > fsopen; > fspick; > move_mount; > + open_tree; OK. > pidfd_open; > pidfd_getfd; > pidfd_send_signal; > diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist > index 4eaffedf7f..2a666d8135 100644 > --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist > @@ -2621,6 +2621,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist > index 6acce2a762..41bd7c1959 100644 > --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist > +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist > @@ -2718,6 +2718,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist > index 9d254a3bc3..198fdab2f7 100644 > --- a/sysdeps/unix/sysv/linux/arc/libc.abilist > +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist > @@ -2382,6 +2382,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist > index 95026bc448..6fd4e75df2 100644 > --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist > +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist > @@ -501,6 +501,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist > index 096246378c..3ec572b50f 100644 > --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist > +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist > @@ -498,6 +498,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist > index 166008f970..94f3deb3e5 100644 > --- a/sysdeps/unix/sysv/linux/csky/libc.abilist > +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist > @@ -2657,6 +2657,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist > index 155cc6ed96..a7deaf3e26 100644 > --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist > +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist > @@ -2606,6 +2606,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist > index 67f7e36556..5f1a1bc4d0 100644 > --- a/sysdeps/unix/sysv/linux/i386/libc.abilist > +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist > @@ -2790,6 +2790,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist > index dbb75aa50f..1af8a55836 100644 > --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist > @@ -2556,6 +2556,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist > index 6d72cedf89..ad3a4b4008 100644 > --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist > +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist > @@ -502,6 +502,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist > index 7899efa0e0..87e76f33a0 100644 > --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist > +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist > @@ -2733,6 +2733,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist > index 162a85a8a8..73df42c7aa 100644 > --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist > +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist > @@ -2706,6 +2706,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist > index a5e28ec2ae..5c2e936547 100644 > --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist > +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist > @@ -2703,6 +2703,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist > index 33627f4b67..45919d27d6 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist > @@ -2698,6 +2698,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist > index 333547fc56..8321b0efac 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist > @@ -2696,6 +2696,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist > index a46a1aefe7..c7198646d2 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist > @@ -2704,6 +2704,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist > index b9b88321a7..8b3cca2a54 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist > @@ -2607,6 +2607,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist > index 0f2293d6a1..2f1595bb35 100644 > --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist > +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist > @@ -2745,6 +2745,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/or1k/libc.abilist b/sysdeps/unix/sysv/linux/or1k/libc.abilist > index 812c05804e..d1d4e12d12 100644 > --- a/sysdeps/unix/sysv/linux/or1k/libc.abilist > +++ b/sysdeps/unix/sysv/linux/or1k/libc.abilist > @@ -2128,6 +2128,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist > index 568e5ab91f..50c9fadaf0 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist > @@ -2760,6 +2760,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist > index bf5bab018d..8998a560cd 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist > @@ -2793,6 +2793,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist > index cffbb88886..bca46bdbe5 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist > @@ -2515,6 +2515,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist > index 8dac584380..97f6d96cd6 100644 > --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist > +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist > @@ -2817,6 +2817,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist > index 431a9a30a1..f588745b28 100644 > --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist > @@ -2384,6 +2384,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist > index ec86269bf7..1acf8a4c54 100644 > --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist > @@ -2584,6 +2584,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist > index fe437d8e61..7c8b410f1a 100644 > --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist > @@ -2758,6 +2758,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist > index e802e8da7f..ba9317ee01 100644 > --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist > @@ -2552,6 +2552,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist > index c0a7196f5a..75fa8834f1 100644 > --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist > +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist > @@ -2613,6 +2613,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist > index 45589bac28..4a4f8ff33f 100644 > --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist > +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist > @@ -2610,6 +2610,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist > index 9b84bc0143..d26671dba8 100644 > --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist > @@ -2753,6 +2753,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist > index 362a22903a..16c2a98ab5 100644 > --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist > @@ -2579,6 +2579,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h > index e0880f75a5..534d05b3f5 100644 > --- a/sysdeps/unix/sysv/linux/sys/mount.h > +++ b/sysdeps/unix/sysv/linux/sys/mount.h > @@ -21,6 +21,7 @@ > #ifndef _SYS_MOUNT_H > #define _SYS_MOUNT_H 1 > > +#include OK. > #include > #include > > @@ -192,6 +193,10 @@ enum fsconfig_command > #define FSCONFIG_CMD_RECONFIGURE FSCONFIG_CMD_RECONFIGURE > }; > > +/* open_tree flags. */ > +#define OPEN_TREE_CLONE 1 /* Clone the target tree and attach the clone */ > +#define OPEN_TREE_CLOEXEC O_CLOEXEC /* Close the file on execve() */ OK. OPEN_TREE_* 1, O_CLOEXEC. Matches kernel. > + > > __BEGIN_DECLS > > @@ -231,6 +236,10 @@ extern int fsconfig (int __fd, unsigned int __cmd, const char *__key, > extern int fspick (int __dfd, const char *__path, unsigned int __flags) OK. return int. signature is int, const char *, unsigned int. Matches kernel. > __THROW; > > +/* Open the mount point FILENAME in directory DFD using FLAGS. */ > +extern int open_tree (int __dfd, const char *__filename, unsigned int __flags) > + __THROW; > + > __END_DECLS > > #endif /* _SYS_MOUNT_H */ > diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list > index 38ab457340..493e68b834 100644 > --- a/sysdeps/unix/sysv/linux/syscalls.list > +++ b/sysdeps/unix/sysv/linux/syscalls.list > @@ -43,6 +43,7 @@ move_mount EXTRA move_mount i:isisU move_mount > munlock - munlock i:aU munlock > munlockall - munlockall i: munlockall > nfsservctl EXTRA nfsservctl i:ipp __compat_nfsservctl nfsservctl@GLIBC_2.0:GLIBC_2.28 > +open_tree EXTRA open_tree i:isU open_tree OK. i:isU. Matches kernel. > pipe2 - pipe2 i:fi __pipe2 pipe2 > pidfd_open EXTRA pidfd_open i:iU pidfd_open > pidfd_getfd EXTRA pidfd_getfd i:iiU pidfd_getfd > diff --git a/sysdeps/unix/sysv/linux/tst-mount-consts.py b/sysdeps/unix/sysv/linux/tst-mount-consts.py > index dd4d50f202..82ab18d963 100755 > --- a/sysdeps/unix/sysv/linux/tst-mount-consts.py > +++ b/sysdeps/unix/sysv/linux/tst-mount-consts.py > @@ -55,7 +55,8 @@ def main(): > check('FSOPEN_.*'), > check('FSMOUNT_.*'), > # MOVE_MOUNT__MASK may vary depending of the kernel version. > - check('MOVE_MOUNT_.*', 'MOVE_MOUNT__MASK')) > + check('MOVE_MOUNT_.*', 'MOVE_MOUNT__MASK'), > + check('OPEN_TREE_*')) > sys.exit(status) > > if __name__ == '__main__': > diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist > index 93dab79cdc..bd7c4ef801 100644 > --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist > +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist > @@ -2530,6 +2530,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F > diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist > index 24daa92e90..1c7f60b41a 100644 > --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist > +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist > @@ -2636,6 +2636,7 @@ GLIBC_2.36 fsmount F > GLIBC_2.36 fsopen F > GLIBC_2.36 fspick F > GLIBC_2.36 move_mount F > +GLIBC_2.36 open_tree F > GLIBC_2.36 pidfd_getfd F > GLIBC_2.36 pidfd_open F > GLIBC_2.36 pidfd_send_signal F -- Cheers, Carlos.