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:
GLIBC_2.36 {
fsmount;
fsopen;
+ move_mount;
pidfd_open;
pidfd_getfd;
pidfd_send_signal;
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
#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. */
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 */
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
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__':
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
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