mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-25 06:20:06 +00:00
linux: Add fsmount
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>
This commit is contained in:
parent
6c0eedd97e
commit
b4deb7beb8
8
NEWS
8
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:
|
||||
|
||||
|
@ -300,6 +300,7 @@ libc {
|
||||
epoll_pwait2;
|
||||
}
|
||||
GLIBC_2.36 {
|
||||
fsmount;
|
||||
fsopen;
|
||||
pidfd_open;
|
||||
pidfd_getfd;
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 */
|
||||
|
@ -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
|
||||
|
@ -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__':
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user