Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tools include UAPI: Update copy of files related to new fspick, fsmount, fsconfig, fsopen, move_mount and open_tree syscalls

Copy the headers changed by these csets:

d8076bdb56af ("uapi: Wire up the mount API syscalls on non-x86 arches [ver #2]")
9c8ad7a2ff0b ("uapi, x86: Fix the syscall numbering of the mount API syscalls [ver #2]")
cf3cba4a429b ("vfs: syscall: Add fspick() to select a superblock for reconfiguration")
93766fbd2696 ("vfs: syscall: Add fsmount() to create a mount for a superblock")
ecdab150fddb ("vfs: syscall: Add fsconfig() for configuring and managing a context")
24dcb3d90a1f ("vfs: syscall: Add fsopen() to prepare for superblock creation")
2db154b3ea8e ("vfs: syscall: Add move_mount(2) to move mounts around")
a07b20004793 ("vfs: syscall: Add open_tree(2) to reference or clone a mount")

We need to create tables for all the flags argument in the new syscalls,
in followup patches.

This silences these perf build warnings:

Warning: Kernel ABI header at 'tools/include/uapi/linux/mount.h' differs from latest version at 'include/uapi/linux/mount.h'
diff -u tools/include/uapi/linux/mount.h include/uapi/linux/mount.h
Warning: Kernel ABI header at 'tools/perf/arch/x86/entry/syscalls/syscall_64.tbl' differs from latest version at 'arch/x86/entry/syscalls/syscall_64.tbl'
diff -u tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/x86/entry/syscalls/syscall_64.tbl
Warning: Kernel ABI header at 'tools/include/uapi/asm-generic/unistd.h' differs from latest version at 'include/uapi/asm-generic/unistd.h'
diff -u tools/include/uapi/asm-generic/unistd.h include/uapi/asm-generic/unistd.h

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: David Howells <dhowells@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Luis Cláudio Gonçalves <lclaudio@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: https://lkml.kernel.org/n/tip-knpqr1u2ffvz6641056z2mwu@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

+83 -1
+13 -1
tools/include/uapi/asm-generic/unistd.h
··· 832 832 __SYSCALL(__NR_io_uring_enter, sys_io_uring_enter) 833 833 #define __NR_io_uring_register 427 834 834 __SYSCALL(__NR_io_uring_register, sys_io_uring_register) 835 + #define __NR_open_tree 428 836 + __SYSCALL(__NR_open_tree, sys_open_tree) 837 + #define __NR_move_mount 429 838 + __SYSCALL(__NR_move_mount, sys_move_mount) 839 + #define __NR_fsopen 430 840 + __SYSCALL(__NR_fsopen, sys_fsopen) 841 + #define __NR_fsconfig 431 842 + __SYSCALL(__NR_fsconfig, sys_fsconfig) 843 + #define __NR_fsmount 432 844 + __SYSCALL(__NR_fsmount, sys_fsmount) 845 + #define __NR_fspick 433 846 + __SYSCALL(__NR_fspick, sys_fspick) 835 847 836 848 #undef __NR_syscalls 837 - #define __NR_syscalls 428 849 + #define __NR_syscalls 434 838 850 839 851 /* 840 852 * 32 bit systems traditionally used different
+2
tools/include/uapi/linux/fcntl.h
··· 91 91 #define AT_STATX_FORCE_SYNC 0x2000 /* - Force the attributes to be sync'd with the server */ 92 92 #define AT_STATX_DONT_SYNC 0x4000 /* - Don't sync attributes with the server */ 93 93 94 + #define AT_RECURSIVE 0x8000 /* Apply to the entire subtree */ 95 + 94 96 95 97 #endif /* _UAPI_LINUX_FCNTL_H */
+62
tools/include/uapi/linux/mount.h
··· 55 55 #define MS_MGC_VAL 0xC0ED0000 56 56 #define MS_MGC_MSK 0xffff0000 57 57 58 + /* 59 + * open_tree() flags. 60 + */ 61 + #define OPEN_TREE_CLONE 1 /* Clone the target tree and attach the clone */ 62 + #define OPEN_TREE_CLOEXEC O_CLOEXEC /* Close the file on execve() */ 63 + 64 + /* 65 + * move_mount() flags. 66 + */ 67 + #define MOVE_MOUNT_F_SYMLINKS 0x00000001 /* Follow symlinks on from path */ 68 + #define MOVE_MOUNT_F_AUTOMOUNTS 0x00000002 /* Follow automounts on from path */ 69 + #define MOVE_MOUNT_F_EMPTY_PATH 0x00000004 /* Empty from path permitted */ 70 + #define MOVE_MOUNT_T_SYMLINKS 0x00000010 /* Follow symlinks on to path */ 71 + #define MOVE_MOUNT_T_AUTOMOUNTS 0x00000020 /* Follow automounts on to path */ 72 + #define MOVE_MOUNT_T_EMPTY_PATH 0x00000040 /* Empty to path permitted */ 73 + #define MOVE_MOUNT__MASK 0x00000077 74 + 75 + /* 76 + * fsopen() flags. 77 + */ 78 + #define FSOPEN_CLOEXEC 0x00000001 79 + 80 + /* 81 + * fspick() flags. 82 + */ 83 + #define FSPICK_CLOEXEC 0x00000001 84 + #define FSPICK_SYMLINK_NOFOLLOW 0x00000002 85 + #define FSPICK_NO_AUTOMOUNT 0x00000004 86 + #define FSPICK_EMPTY_PATH 0x00000008 87 + 88 + /* 89 + * The type of fsconfig() call made. 90 + */ 91 + enum fsconfig_command { 92 + FSCONFIG_SET_FLAG = 0, /* Set parameter, supplying no value */ 93 + FSCONFIG_SET_STRING = 1, /* Set parameter, supplying a string value */ 94 + FSCONFIG_SET_BINARY = 2, /* Set parameter, supplying a binary blob value */ 95 + FSCONFIG_SET_PATH = 3, /* Set parameter, supplying an object by path */ 96 + FSCONFIG_SET_PATH_EMPTY = 4, /* Set parameter, supplying an object by (empty) path */ 97 + FSCONFIG_SET_FD = 5, /* Set parameter, supplying an object by fd */ 98 + FSCONFIG_CMD_CREATE = 6, /* Invoke superblock creation */ 99 + FSCONFIG_CMD_RECONFIGURE = 7, /* Invoke superblock reconfiguration */ 100 + }; 101 + 102 + /* 103 + * fsmount() flags. 104 + */ 105 + #define FSMOUNT_CLOEXEC 0x00000001 106 + 107 + /* 108 + * Mount attributes. 109 + */ 110 + #define MOUNT_ATTR_RDONLY 0x00000001 /* Mount read-only */ 111 + #define MOUNT_ATTR_NOSUID 0x00000002 /* Ignore suid and sgid bits */ 112 + #define MOUNT_ATTR_NODEV 0x00000004 /* Disallow access to device special files */ 113 + #define MOUNT_ATTR_NOEXEC 0x00000008 /* Disallow program execution */ 114 + #define MOUNT_ATTR__ATIME 0x00000070 /* Setting on how atime should be updated */ 115 + #define MOUNT_ATTR_RELATIME 0x00000000 /* - Update atime relative to mtime/ctime. */ 116 + #define MOUNT_ATTR_NOATIME 0x00000010 /* - Do not update access times. */ 117 + #define MOUNT_ATTR_STRICTATIME 0x00000020 /* - Always perform atime updates */ 118 + #define MOUNT_ATTR_NODIRATIME 0x00000080 /* Do not update directory access times */ 119 + 58 120 #endif /* _UAPI_LINUX_MOUNT_H */
+6
tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
··· 349 349 425 common io_uring_setup __x64_sys_io_uring_setup 350 350 426 common io_uring_enter __x64_sys_io_uring_enter 351 351 427 common io_uring_register __x64_sys_io_uring_register 352 + 428 common open_tree __x64_sys_open_tree 353 + 429 common move_mount __x64_sys_move_mount 354 + 430 common fsopen __x64_sys_fsopen 355 + 431 common fsconfig __x64_sys_fsconfig 356 + 432 common fsmount __x64_sys_fsmount 357 + 433 common fspick __x64_sys_fspick 352 358 353 359 # 354 360 # x32-specific system call numbers start at 512 to avoid cache impact