]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
linux: Add move_mount
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 31 Jan 2022 13:04:57 +0000 (10:04 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 24 Jun 2022 19:03:38 +0000 (16:03 -0300)
It was added on Linux 5.2 (2db154b3ea8e14b04fee23e3fdfd5e9d17fbc6ae)
as way t move a mount from one place to another and, in the next
commit, allow to attach an unattached mount tree.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-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 56f852b3196b8032c74198609e16665606abfb03..b0a3d7e5120c4c395af947c6e57e018f91dc9764 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 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.
+* 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.
 
 Deprecated and removed features, and other changes affecting compatibility:
 
index 1d5b15aec4ee6b9709ae4c7f4223486640c570f9..26d552ba3bcca1438ae67292eba7e8c637732322 100644 (file)
@@ -302,6 +302,7 @@ libc {
   GLIBC_2.36 {
     fsmount;
     fsopen;
+    move_mount;
     pidfd_open;
     pidfd_getfd;
     pidfd_send_signal;
index bcad12806777d5fa7685a40a5e3e5afec1125d98..8dba065b81bb88a1b9056a96dc93fad8ac51104f 100644 (file)
@@ -2618,6 +2618,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index 1d88271a255fa45fff0af1965d2bd6591983c522..08f47500220faf8fb832f42083f8fa538e206403 100644 (file)
@@ -2715,6 +2715,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index c4cc3c17f0c38bc79c300ba9b5e941c17d304aa3..75db76302338eb8f9227043c2d50114eaab8a2b4 100644 (file)
@@ -2379,6 +2379,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index cfec9daf7a1145d771eb1ec6a1beab925049af5c..fa33f317ac4511ad2c839131cab6a42c13561316 100644 (file)
@@ -498,6 +498,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index b77416d32f16a2388c6d758aad8a5f7100362002..dba2e4ce420b63e4d96dc6fb91abdc84696e97a6 100644 (file)
@@ -495,6 +495,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index 76261943fb0115cd40d546519b542c2de57de0a2..e6ff921c2979992460f0d2de2988eb25e26ce7b5 100644 (file)
@@ -2654,6 +2654,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index 29352b69ac4b0e31bd6a01d9af56748c1a8e9409..8a40cece835cb6c5d3c02a1ad5341e8ceec49ad3 100644 (file)
@@ -2603,6 +2603,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index 9c465ec784eb3816591f22a3df42a1fd38ec4873..a89826049fefd60bbdf245c048fd042a065029c9 100644 (file)
@@ -2787,6 +2787,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index ad1268e61f9c6f0484fad22f7caa0ae9b51d7c3d..d1d96b746911ff55624a0e7b4bbd2172105be968 100644 (file)
@@ -2553,6 +2553,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index c63c140612dbdc87d091597f3468dc8ce69457ee..63a62f267ad9bd5d96e51661c1a4d57971d59562 100644 (file)
@@ -499,6 +499,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index 937ac25d400bfe119befce9ce0b913be0b901d24..f68325f9bc3f4ad102558972a1b618dc761503d3 100644 (file)
@@ -2730,6 +2730,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index d144df6aceba9d17ec24f3ce3e7626e4eeffe0dd..247af2075c317ffd6a85606b4f2dafe967befaf8 100644 (file)
@@ -2703,6 +2703,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index 87ff6f261f9b77087905eeff0b32c66c11ade7b4..b0ac3f9009d8029ec85a52cb809fc120e6d5a549 100644 (file)
@@ -2700,6 +2700,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index b0d2b88f14fa52d88c9a67789fbf284eb0029478..b22cd6bf2f10bb84c16d25edd1b3fee43c2fed72 100644 (file)
@@ -2695,6 +2695,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index 2ed23ce297715e5eee3da7bd0c921c51f669468e..12fc2cce3e97b68048d80854c2b05a69b6fb9070 100644 (file)
@@ -2693,6 +2693,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index 0048a2341687cc140d77b70c3d1d6066e57b45a2..d3e96dfd43a6dc56c41456515e6abb11501b4dcc 100644 (file)
@@ -2701,6 +2701,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index 4b10b6bec26ce88dfb57bdcc1d36fbd32bc8ea88..cb58ed4db0018544590d9f123c6a2465b63eb14c 100644 (file)
@@ -2604,6 +2604,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index 8f905a8def7d77562398223da79ae400aad7222d..61ad58a5993d061f616c315475b300388152cfcb 100644 (file)
@@ -2742,6 +2742,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index 60c2cdb6e28bce2ad869d1f4022b787eb2ec8c91..1260dc4e2eefee3689a8d6d27837505722e40917 100644 (file)
@@ -2125,6 +2125,7 @@ GLIBC_2.35 writev F
 GLIBC_2.35 wscanf F
 GLIBC_2.36 fsmount F
 GLIBC_2.36 fsopen F
+GLIBC_2.36 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index ac5453d9c1caa71541be8e940e0bdcbe2ddd722f..363939762c3949a50d459752b4c37a341fd10bd7 100644 (file)
@@ -2757,6 +2757,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index 772b6d2587ff92594356c217a8c7d9ea5f3c1731..f512ad8bafc97b35b94effc097794ce43d39b027 100644 (file)
@@ -2790,6 +2790,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index bcf1ed9a1c7bbc6caa6eee1aac3bde1c6c6ac100..c9bdc9859cc80775efde25667a95a8804db0084f 100644 (file)
@@ -2512,6 +2512,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index cf4452775fabf653f641e52de377d96a0c8f7666..f091be30bde7605444fe86db1dfbf3deec359943 100644 (file)
@@ -2814,6 +2814,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index 48aaada19d8fd21457add406859a34ee1cd2f460..7ea73f9af83284be56b29b34d73dfbe12d3d211f 100644 (file)
@@ -2381,6 +2381,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index e08ddc862773ee6d2e2ac10aa7afe670a678b6fc..333fa62714006609ba9f9e8268b12878e5e3bcb3 100644 (file)
@@ -2581,6 +2581,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index c315714ed8f51b0ddecc082312ecffdf942f885a..a867467b1257be144c116ff610d66453fed2f08b 100644 (file)
@@ -2755,6 +2755,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index 9d83b3cf7d2197e5aa01989cc2f5919debbd9f63..dbad5b3163ed99cee7a746399694f83a761bbd7f 100644 (file)
@@ -2549,6 +2549,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index 8e1094693636856277f43dc7c03e7da58431174f..6f755cc17390bf30fa4eb0ac06f5f92a8227eb32 100644 (file)
@@ -2610,6 +2610,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index 6b4d8047c9020b77266581d45fc68c3040f2098e..77d936aa3cdbc6dde4ea04cb732618c101ea3ec5 100644 (file)
@@ -2607,6 +2607,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index d22206159024a4fe30b518ff59292dba978884c4..09bb4363e1734c4e4f9ebec7ca5fdcaf7350b1bd 100644 (file)
@@ -2750,6 +2750,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index a8eb190e46f1e07bfcd5a3e5d5f687d0872301d7..9df9cb6adbb9cae926f898d06fb749c7985e00da 100644 (file)
@@ -2576,6 +2576,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index 6d55c55de8e4972a36ef0af61ca222c7d0381227..50ec65c7a37da91978dc4bf309e5573cdfc98a1f 100644 (file)
@@ -154,6 +154,16 @@ enum
 #define MOUNT_ATTR_NOSYMFOLLOW  0x00200000 /* Do not follow symlinks.  */
 
 
+/* move_mount flags.  */
+#define MOVE_MOUNT_F_SYMLINKS   0x00000001 /* Follow symlinks on from path */
+#define MOVE_MOUNT_F_AUTOMOUNTS 0x00000002 /* Follow automounts on from path */
+#define MOVE_MOUNT_F_EMPTY_PATH 0x00000004 /* Empty from path permitted */
+#define MOVE_MOUNT_T_SYMLINKS   0x00000010 /* Follow symlinks on to path */
+#define MOVE_MOUNT_T_AUTOMOUNTS 0x00000020 /* Follow automounts on to path */
+#define MOVE_MOUNT_T_EMPTY_PATH 0x00000040 /* Empty to path permitted */
+#define MOVE_MOUNT_SET_GROUP    0x00000100 /* Set sharing group instead */
+
+
 __BEGIN_DECLS
 
 /* Mount a filesystem.  */
@@ -176,6 +186,13 @@ extern int fsopen (const char *__fs_name, unsigned int __flags) __THROW;
 extern int fsmount (int __fd, unsigned int __flags,
                    unsigned int __ms_flags) __THROW;
 
+/* Add the mounted FROM_DFD referenced by FROM_PATHNAME filesystem returned
+   by fsmount in the hierarchy in the place TO_DFD reference by TO_PATHNAME
+   using FLAGS.  */
+extern int move_mount (int __from_dfd, const char *__from_pathname,
+                      int __to_dfd, const char *__to_pathname,
+                      unsigned int flags) __THROW;
+
 __END_DECLS
 
 #endif /* _SYS_MOUNT_H */
index 4ac6fe7659eb937f21265391432e56d83191f524..7368210cd1045ccd1fb1c1a6843d9c3c52f9a919 100644 (file)
@@ -37,6 +37,7 @@ mincore               -       mincore         i:aUV   mincore
 mlock          -       mlock           i:bU    mlock
 mlockall       -       mlockall        i:i     mlockall
 mount          EXTRA   mount           i:sssUp __mount mount
+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
index 9fa0947308f009b3252eb684b1e6ca34b27c63b9..aa9c02796eb9700da8a75707e1191d23f80197b4 100755 (executable)
@@ -51,7 +51,9 @@ def main():
 
     status = max(
         check('FSOPEN_.*'),
-        check('FSMOUNT_.*'))
+        check('FSMOUNT_.*'),
+        # MOVE_MOUNT__MASK may vary depending of the kernel version.
+        check('MOVE_MOUNT_.*', 'MOVE_MOUNT__MASK'))
     sys.exit(status)
 
 if __name__ == '__main__':
index 0293b05d12ce3c217ef08ba3fef57fcc05150caa..4829450ad0ca7c3f27eca28f32cd0e10b336fcaf 100644 (file)
@@ -2527,6 +2527,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F
index be216f4686e55ff444124fe48baf0385675bc461..caea228bcbe42eda548cb492b04feb8087a0b92b 100644 (file)
@@ -2633,6 +2633,7 @@ 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 move_mount F
 GLIBC_2.36 pidfd_getfd F
 GLIBC_2.36 pidfd_open F
 GLIBC_2.36 pidfd_send_signal F