]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
linux: Add fsmount
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 31 Jan 2022 12:46:24 +0000 (09:46 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 24 Jun 2022 19:03:31 +0000 (16:03 -0300)
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.

Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
38 files changed:
NEWS
sysdeps/unix/sysv/linux/Versions
sysdeps/unix/sysv/linux/aarch64/libc.abilist
sysdeps/unix/sysv/linux/alpha/libc.abilist
sysdeps/unix/sysv/linux/arc/libc.abilist
sysdeps/unix/sysv/linux/arm/be/libc.abilist
sysdeps/unix/sysv/linux/arm/le/libc.abilist
sysdeps/unix/sysv/linux/csky/libc.abilist
sysdeps/unix/sysv/linux/hppa/libc.abilist
sysdeps/unix/sysv/linux/i386/libc.abilist
sysdeps/unix/sysv/linux/ia64/libc.abilist
sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
sysdeps/unix/sysv/linux/nios2/libc.abilist
sysdeps/unix/sysv/linux/or1k/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
sysdeps/unix/sysv/linux/sh/be/libc.abilist
sysdeps/unix/sysv/linux/sh/le/libc.abilist
sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
sysdeps/unix/sysv/linux/sys/mount.h
sysdeps/unix/sysv/linux/syscalls.list
sysdeps/unix/sysv/linux/tst-mount-consts.py
sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist

diff --git a/NEWS b/NEWS
index de3f525e923a4436fe945e64d0781d9bdf69f330..56f852b3196b8032c74198609e16665606abfb03 100644 (file)
--- 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 function has been added.  It is 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 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.
 
 Deprecated and removed features, and other changes affecting compatibility:
 
index 9ff750ac0927efac2451f79f9e5e32ae47f508ad..1d5b15aec4ee6b9709ae4c7f4223486640c570f9 100644 (file)
@@ -300,6 +300,7 @@ libc {
     epoll_pwait2;
   }
   GLIBC_2.36 {
+    fsmount;
     fsopen;
     pidfd_open;
     pidfd_getfd;
index dedb69abdafc019be79da6b79f3b2fb238d99185..bcad12806777d5fa7685a40a5e3e5afec1125d98 100644 (file)
@@ -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
index 67c7c4319029a7541b613725629ccb7e1c213716..1d88271a255fa45fff0af1965d2bd6591983c522 100644 (file)
@@ -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
index 6b478b94619d921ec3fb05cb32838c52eae6e86d..c4cc3c17f0c38bc79c300ba9b5e941c17d304aa3 100644 (file)
@@ -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
index 45af999b8975d6ab587d0c90a5e4e5265a1d862d..cfec9daf7a1145d771eb1ec6a1beab925049af5c 100644 (file)
@@ -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
index 5abdfbd677535e002985c2e032d50f52222703d4..b77416d32f16a2388c6d758aad8a5f7100362002 100644 (file)
@@ -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
index 1b560da21fa9de1a218e5dbf9a6b89d32297cb98..76261943fb0115cd40d546519b542c2de57de0a2 100644 (file)
@@ -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
index 09397be92964b53fa9bb37b6c9e9485fdb17cdaf..29352b69ac4b0e31bd6a01d9af56748c1a8e9409 100644 (file)
@@ -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
index a3b95efa368989144fd691b7464beabb5e36f641..9c465ec784eb3816591f22a3df42a1fd38ec4873 100644 (file)
@@ -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
index 840aa669e5b7416f4e34f959d1cec0c6591fc86e..ad1268e61f9c6f0484fad22f7caa0ae9b51d7c3d 100644 (file)
@@ -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
index 89014298003f8183a6e2706d252e448d78cad43e..c63c140612dbdc87d091597f3468dc8ce69457ee 100644 (file)
@@ -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
index 5d3ccb254f907ba14c29cf78e7c28fbb2ced8945..937ac25d400bfe119befce9ce0b913be0b901d24 100644 (file)
@@ -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
index 651d7e65f814bd28719def072310402655d1abd1..d144df6aceba9d17ec24f3ce3e7626e4eeffe0dd 100644 (file)
@@ -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
index c507fbd83becc47e8d44960a4d71fe5da8cd05b6..87ff6f261f9b77087905eeff0b32c66c11ade7b4 100644 (file)
@@ -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
index eef92ef698311a03b9cbabfbffe7707cd86ea56f..b0d2b88f14fa52d88c9a67789fbf284eb0029478 100644 (file)
@@ -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
index 92634e2910e2c690d773739974fd03718971cee1..2ed23ce297715e5eee3da7bd0c921c51f669468e 100644 (file)
@@ -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
index 5a6a1b8bcdf4d0e000c4b63aa00f4e0b6d4f8145..0048a2341687cc140d77b70c3d1d6066e57b45a2 100644 (file)
@@ -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
index 0fdf5ff93bb3f80d2facc08f8b4ab3bcef933824..4b10b6bec26ce88dfb57bdcc1d36fbd32bc8ea88 100644 (file)
@@ -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
index e2198633606ac2f09894abb11bc9c74fd7e2ebcc..8f905a8def7d77562398223da79ae400aad7222d 100644 (file)
@@ -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
index 8fef5e2ab84ac909f0d7e7fca1c31a70a3c99319..60c2cdb6e28bce2ad869d1f4022b787eb2ec8c91 100644 (file)
@@ -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
index d8a5c77db162b5594934ffaa5745b91d02c40fcb..ac5453d9c1caa71541be8e940e0bdcbe2ddd722f 100644 (file)
@@ -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
index 18cb35378d20e48e1207944da21c90ab574d9a0e..772b6d2587ff92594356c217a8c7d9ea5f3c1731 100644 (file)
@@ -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
index e144bb4167db6506b657fa1a8ffc670ad0618392..bcf1ed9a1c7bbc6caa6eee1aac3bde1c6c6ac100 100644 (file)
@@ -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
index 1f283236cdd7f1c748173386e990bebed3fecbb2..cf4452775fabf653f641e52de377d96a0c8f7666 100644 (file)
@@ -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
index f76f47d01793805931a4f52a877dc4ba71e5fb9f..48aaada19d8fd21457add406859a34ee1cd2f460 100644 (file)
@@ -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
index 93517ae3d6e1fa3f2a1c4d6846b8a1a8efbb86d3..e08ddc862773ee6d2e2ac10aa7afe670a678b6fc 100644 (file)
@@ -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
index 4d2c9ed035e4cce2fdc4dd8460ae7fdea5421994..c315714ed8f51b0ddecc082312ecffdf942f885a 100644 (file)
@@ -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
index 71bb7af685db4d55a0392ea51dd41d27bd3c7848..9d83b3cf7d2197e5aa01989cc2f5919debbd9f63 100644 (file)
@@ -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
index a0408600106f69b75e24bcc41b3a58f7f9f7bbbe..8e1094693636856277f43dc7c03e7da58431174f 100644 (file)
@@ -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
index 10b7fa356047101b773da67fbc0b733922250677..6b4d8047c9020b77266581d45fc68c3040f2098e 100644 (file)
@@ -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
index e859089b640ef0331b9913b62633f4c6c25d3d63..d22206159024a4fe30b518ff59292dba978884c4 100644 (file)
@@ -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
index 4347e399d6ebbc14e1aa8b44eb7c5300ea875520..a8eb190e46f1e07bfcd5a3e5d5f687d0872301d7 100644 (file)
@@ -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
index 56da283d3f7662041b6558e248e7aaf69f7eb715..6d55c55de8e4972a36ef0af61ca222c7d0381227 100644 (file)
@@ -137,6 +137,22 @@ enum
 /* fsopen flags.  */
 #define FSOPEN_CLOEXEC          0x00000001
 
+/* fsmount flags.  */
+#define FSMOUNT_CLOEXEC         0x00000001
+
+/* 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.  */
+#define MOUNT_ATTR_IDMAP        0x00100000 /* Idmap mount to @userns_fd in struct mount_attr.  */
+#define MOUNT_ATTR_NOSYMFOLLOW  0x00200000 /* Do not follow symlinks.  */
+
 
 __BEGIN_DECLS
 
@@ -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;
 
+/* Create a mount representation for the FD created by fsopen using
+   FLAGS with ATTR_FLAGS describing how the mount is to be performed.  */
+extern int fsmount (int __fd, unsigned int __flags,
+                   unsigned int __ms_flags) __THROW;
+
 __END_DECLS
 
 #endif /* _SYS_MOUNT_H */
index a2919f433db1a171c9a15c569ad6a1275af38a4c..4ac6fe7659eb937f21265391432e56d83191f524 100644 (file)
@@ -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
 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
index 33c668943dcdfb7f6e67268ee97ad4450173bc76..9fa0947308f009b3252eb684b1e6ca34b27c63b9 100755 (executable)
@@ -49,7 +49,9 @@ def main():
                 linux_version_glibc > linux_version_headers,
                 linux_version_headers > linux_version_glibc)
 
-    status = check('FSOPEN_.*')
+    status = max(
+        check('FSOPEN_.*'),
+        check('FSMOUNT_.*'))
     sys.exit(status)
 
 if __name__ == '__main__':
index 65e5d2150dfdfb08c7eba78f734ae7ca940ad65a..0293b05d12ce3c217ef08ba3fef57fcc05150caa 100644 (file)
@@ -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
index 4c6371b3c4b4cfe052e95ae9996a94c455578043..be216f4686e55ff444124fe48baf0385675bc461 100644 (file)
@@ -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