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

tools headers: Update the VFS headers with the kernel sources

To pick up the changes in:

7ed6cbe0f8caa6ee fs: add STATX_DIO_READ_ALIGN
8fc7e23a9bd851e6 fs: reformat the statx definition
a5874fde3c0884a3 exec: Add a new AT_EXECVE_CHECK flag to execveat(2)
1ebd4a3c095cd538 blk-crypto: add ioctls to create and prepare hardware-wrapped keys
af6505e5745b9f3a fs: add RWF_DONTCACHE iocb and FOP_DONTCACHE file_operations flag
10783d0ba0d7731e fs, iov_iter: define meta io descriptor
8f6116b5b77b0536 statmount: add a new supported_mask field
37c4a9590e1efcae statmount: allow to retrieve idmappings

Addressing this perf tools build warning:

Warning: Kernel ABI header differences:
diff -u tools/include/uapi/linux/stat.h include/uapi/linux/stat.h
diff -u tools/perf/trace/beauty/include/uapi/linux/stat.h include/uapi/linux/stat.h
diff -u tools/perf/trace/beauty/include/uapi/linux/fcntl.h include/uapi/linux/fcntl.h
diff -u tools/perf/trace/beauty/include/uapi/linux/fs.h include/uapi/linux/fs.h
diff -u tools/perf/trace/beauty/include/uapi/linux/mount.h include/uapi/linux/mount.h

Please see tools/include/uapi/README for further details.

Acked-by: Ingo Molnar <mingo@kernel.org>
Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com>
Cc: linux-fsdevel@vger.kernel.org
Link: https://lore.kernel.org/r/20250410001125.391820-5-namhyung@kernel.org
Signed-off-by: Namhyung Kim <namhyung@kernel.org>

+179 -54
+75 -24
tools/include/uapi/linux/stat.h
··· 98 98 */ 99 99 struct statx { 100 100 /* 0x00 */ 101 - __u32 stx_mask; /* What results were written [uncond] */ 102 - __u32 stx_blksize; /* Preferred general I/O size [uncond] */ 103 - __u64 stx_attributes; /* Flags conveying information about the file [uncond] */ 101 + /* What results were written [uncond] */ 102 + __u32 stx_mask; 103 + 104 + /* Preferred general I/O size [uncond] */ 105 + __u32 stx_blksize; 106 + 107 + /* Flags conveying information about the file [uncond] */ 108 + __u64 stx_attributes; 109 + 104 110 /* 0x10 */ 105 - __u32 stx_nlink; /* Number of hard links */ 106 - __u32 stx_uid; /* User ID of owner */ 107 - __u32 stx_gid; /* Group ID of owner */ 108 - __u16 stx_mode; /* File mode */ 111 + /* Number of hard links */ 112 + __u32 stx_nlink; 113 + 114 + /* User ID of owner */ 115 + __u32 stx_uid; 116 + 117 + /* Group ID of owner */ 118 + __u32 stx_gid; 119 + 120 + /* File mode */ 121 + __u16 stx_mode; 109 122 __u16 __spare0[1]; 123 + 110 124 /* 0x20 */ 111 - __u64 stx_ino; /* Inode number */ 112 - __u64 stx_size; /* File size */ 113 - __u64 stx_blocks; /* Number of 512-byte blocks allocated */ 114 - __u64 stx_attributes_mask; /* Mask to show what's supported in stx_attributes */ 125 + /* Inode number */ 126 + __u64 stx_ino; 127 + 128 + /* File size */ 129 + __u64 stx_size; 130 + 131 + /* Number of 512-byte blocks allocated */ 132 + __u64 stx_blocks; 133 + 134 + /* Mask to show what's supported in stx_attributes */ 135 + __u64 stx_attributes_mask; 136 + 115 137 /* 0x40 */ 116 - struct statx_timestamp stx_atime; /* Last access time */ 117 - struct statx_timestamp stx_btime; /* File creation time */ 118 - struct statx_timestamp stx_ctime; /* Last attribute change time */ 119 - struct statx_timestamp stx_mtime; /* Last data modification time */ 138 + /* Last access time */ 139 + struct statx_timestamp stx_atime; 140 + 141 + /* File creation time */ 142 + struct statx_timestamp stx_btime; 143 + 144 + /* Last attribute change time */ 145 + struct statx_timestamp stx_ctime; 146 + 147 + /* Last data modification time */ 148 + struct statx_timestamp stx_mtime; 149 + 120 150 /* 0x80 */ 121 - __u32 stx_rdev_major; /* Device ID of special file [if bdev/cdev] */ 151 + /* Device ID of special file [if bdev/cdev] */ 152 + __u32 stx_rdev_major; 122 153 __u32 stx_rdev_minor; 123 - __u32 stx_dev_major; /* ID of device containing file [uncond] */ 154 + 155 + /* ID of device containing file [uncond] */ 156 + __u32 stx_dev_major; 124 157 __u32 stx_dev_minor; 158 + 125 159 /* 0x90 */ 126 160 __u64 stx_mnt_id; 127 - __u32 stx_dio_mem_align; /* Memory buffer alignment for direct I/O */ 128 - __u32 stx_dio_offset_align; /* File offset alignment for direct I/O */ 161 + 162 + /* Memory buffer alignment for direct I/O */ 163 + __u32 stx_dio_mem_align; 164 + 165 + /* File offset alignment for direct I/O */ 166 + __u32 stx_dio_offset_align; 167 + 129 168 /* 0xa0 */ 130 - __u64 stx_subvol; /* Subvolume identifier */ 131 - __u32 stx_atomic_write_unit_min; /* Min atomic write unit in bytes */ 132 - __u32 stx_atomic_write_unit_max; /* Max atomic write unit in bytes */ 169 + /* Subvolume identifier */ 170 + __u64 stx_subvol; 171 + 172 + /* Min atomic write unit in bytes */ 173 + __u32 stx_atomic_write_unit_min; 174 + 175 + /* Max atomic write unit in bytes */ 176 + __u32 stx_atomic_write_unit_max; 177 + 133 178 /* 0xb0 */ 134 - __u32 stx_atomic_write_segments_max; /* Max atomic write segment count */ 135 - __u32 __spare1[1]; 179 + /* Max atomic write segment count */ 180 + __u32 stx_atomic_write_segments_max; 181 + 182 + /* File offset alignment for direct I/O reads */ 183 + __u32 stx_dio_read_offset_align; 184 + 136 185 /* 0xb8 */ 137 186 __u64 __spare3[9]; /* Spare space for future expansion */ 187 + 138 188 /* 0x100 */ 139 189 }; 140 190 ··· 214 164 #define STATX_MNT_ID_UNIQUE 0x00004000U /* Want/got extended stx_mount_id */ 215 165 #define STATX_SUBVOL 0x00008000U /* Want/got stx_subvol */ 216 166 #define STATX_WRITE_ATOMIC 0x00010000U /* Want/got atomic_write_* fields */ 167 + #define STATX_DIO_READ_ALIGN 0x00020000U /* Want/got dio read alignment info */ 217 168 218 169 #define STATX__RESERVED 0x80000000U /* Reserved for future struct statx expansion */ 219 170
+4
tools/perf/trace/beauty/include/uapi/linux/fcntl.h
··· 155 155 #define AT_HANDLE_MNT_ID_UNIQUE 0x001 /* Return the u64 unique mount ID. */ 156 156 #define AT_HANDLE_CONNECTABLE 0x002 /* Request a connectable file handle */ 157 157 158 + /* Flags for execveat2(2). */ 159 + #define AT_EXECVE_CHECK 0x10000 /* Only perform a check if execution 160 + would be allowed. */ 161 + 158 162 #endif /* _UAPI_LINUX_FCNTL_H */
+16 -5
tools/perf/trace/beauty/include/uapi/linux/fs.h
··· 40 40 #define BLOCK_SIZE_BITS 10 41 41 #define BLOCK_SIZE (1<<BLOCK_SIZE_BITS) 42 42 43 + /* flags for integrity meta */ 44 + #define IO_INTEGRITY_CHK_GUARD (1U << 0) /* enforce guard check */ 45 + #define IO_INTEGRITY_CHK_REFTAG (1U << 1) /* enforce ref check */ 46 + #define IO_INTEGRITY_CHK_APPTAG (1U << 2) /* enforce app check */ 47 + 48 + #define IO_INTEGRITY_VALID_FLAGS (IO_INTEGRITY_CHK_GUARD | \ 49 + IO_INTEGRITY_CHK_REFTAG | \ 50 + IO_INTEGRITY_CHK_APPTAG) 51 + 43 52 #define SEEK_SET 0 /* seek relative to beginning of file */ 44 53 #define SEEK_CUR 1 /* seek relative to current file position */ 45 54 #define SEEK_END 2 /* seek relative to end of file */ ··· 212 203 #define BLKROTATIONAL _IO(0x12,126) 213 204 #define BLKZEROOUT _IO(0x12,127) 214 205 #define BLKGETDISKSEQ _IOR(0x12,128,__u64) 215 - /* 216 - * A jump here: 130-136 are reserved for zoned block devices 217 - * (see uapi/linux/blkzoned.h) 218 - */ 206 + /* 130-136 are used by zoned block device ioctls (uapi/linux/blkzoned.h) */ 207 + /* 137-141 are used by blk-crypto ioctls (uapi/linux/blk-crypto.h) */ 219 208 220 209 #define BMAP_IOCTL 1 /* obsolete - kept for compatibility */ 221 210 #define FIBMAP _IO(0x00,1) /* bmap access */ ··· 339 332 /* Atomic Write */ 340 333 #define RWF_ATOMIC ((__force __kernel_rwf_t)0x00000040) 341 334 335 + /* buffered IO that drops the cache after reading or writing data */ 336 + #define RWF_DONTCACHE ((__force __kernel_rwf_t)0x00000080) 337 + 342 338 /* mask of flags supported by the kernel */ 343 339 #define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT |\ 344 - RWF_APPEND | RWF_NOAPPEND | RWF_ATOMIC) 340 + RWF_APPEND | RWF_NOAPPEND | RWF_ATOMIC |\ 341 + RWF_DONTCACHE) 345 342 346 343 #define PROCFS_IOCTL_MAGIC 'f' 347 344
+9 -1
tools/perf/trace/beauty/include/uapi/linux/mount.h
··· 179 179 __u32 opt_array; /* [str] Array of nul terminated fs options */ 180 180 __u32 opt_sec_num; /* Number of security options */ 181 181 __u32 opt_sec_array; /* [str] Array of nul terminated security options */ 182 - __u64 __spare2[46]; 182 + __u64 supported_mask; /* Mask flags that this kernel supports */ 183 + __u32 mnt_uidmap_num; /* Number of uid mappings */ 184 + __u32 mnt_uidmap; /* [str] Array of uid mappings (as seen from callers namespace) */ 185 + __u32 mnt_gidmap_num; /* Number of gid mappings */ 186 + __u32 mnt_gidmap; /* [str] Array of gid mappings (as seen from callers namespace) */ 187 + __u64 __spare2[43]; 183 188 char str[]; /* Variable size part containing strings */ 184 189 }; 185 190 ··· 222 217 #define STATMOUNT_SB_SOURCE 0x00000200U /* Want/got sb_source */ 223 218 #define STATMOUNT_OPT_ARRAY 0x00000400U /* Want/got opt_... */ 224 219 #define STATMOUNT_OPT_SEC_ARRAY 0x00000800U /* Want/got opt_sec... */ 220 + #define STATMOUNT_SUPPORTED_MASK 0x00001000U /* Want/got supported mask flags */ 221 + #define STATMOUNT_MNT_UIDMAP 0x00002000U /* Want/got uidmap... */ 222 + #define STATMOUNT_MNT_GIDMAP 0x00004000U /* Want/got gidmap... */ 225 223 226 224 /* 227 225 * Special @mnt_id values that can be passed to listmount
+75 -24
tools/perf/trace/beauty/include/uapi/linux/stat.h
··· 98 98 */ 99 99 struct statx { 100 100 /* 0x00 */ 101 - __u32 stx_mask; /* What results were written [uncond] */ 102 - __u32 stx_blksize; /* Preferred general I/O size [uncond] */ 103 - __u64 stx_attributes; /* Flags conveying information about the file [uncond] */ 101 + /* What results were written [uncond] */ 102 + __u32 stx_mask; 103 + 104 + /* Preferred general I/O size [uncond] */ 105 + __u32 stx_blksize; 106 + 107 + /* Flags conveying information about the file [uncond] */ 108 + __u64 stx_attributes; 109 + 104 110 /* 0x10 */ 105 - __u32 stx_nlink; /* Number of hard links */ 106 - __u32 stx_uid; /* User ID of owner */ 107 - __u32 stx_gid; /* Group ID of owner */ 108 - __u16 stx_mode; /* File mode */ 111 + /* Number of hard links */ 112 + __u32 stx_nlink; 113 + 114 + /* User ID of owner */ 115 + __u32 stx_uid; 116 + 117 + /* Group ID of owner */ 118 + __u32 stx_gid; 119 + 120 + /* File mode */ 121 + __u16 stx_mode; 109 122 __u16 __spare0[1]; 123 + 110 124 /* 0x20 */ 111 - __u64 stx_ino; /* Inode number */ 112 - __u64 stx_size; /* File size */ 113 - __u64 stx_blocks; /* Number of 512-byte blocks allocated */ 114 - __u64 stx_attributes_mask; /* Mask to show what's supported in stx_attributes */ 125 + /* Inode number */ 126 + __u64 stx_ino; 127 + 128 + /* File size */ 129 + __u64 stx_size; 130 + 131 + /* Number of 512-byte blocks allocated */ 132 + __u64 stx_blocks; 133 + 134 + /* Mask to show what's supported in stx_attributes */ 135 + __u64 stx_attributes_mask; 136 + 115 137 /* 0x40 */ 116 - struct statx_timestamp stx_atime; /* Last access time */ 117 - struct statx_timestamp stx_btime; /* File creation time */ 118 - struct statx_timestamp stx_ctime; /* Last attribute change time */ 119 - struct statx_timestamp stx_mtime; /* Last data modification time */ 138 + /* Last access time */ 139 + struct statx_timestamp stx_atime; 140 + 141 + /* File creation time */ 142 + struct statx_timestamp stx_btime; 143 + 144 + /* Last attribute change time */ 145 + struct statx_timestamp stx_ctime; 146 + 147 + /* Last data modification time */ 148 + struct statx_timestamp stx_mtime; 149 + 120 150 /* 0x80 */ 121 - __u32 stx_rdev_major; /* Device ID of special file [if bdev/cdev] */ 151 + /* Device ID of special file [if bdev/cdev] */ 152 + __u32 stx_rdev_major; 122 153 __u32 stx_rdev_minor; 123 - __u32 stx_dev_major; /* ID of device containing file [uncond] */ 154 + 155 + /* ID of device containing file [uncond] */ 156 + __u32 stx_dev_major; 124 157 __u32 stx_dev_minor; 158 + 125 159 /* 0x90 */ 126 160 __u64 stx_mnt_id; 127 - __u32 stx_dio_mem_align; /* Memory buffer alignment for direct I/O */ 128 - __u32 stx_dio_offset_align; /* File offset alignment for direct I/O */ 161 + 162 + /* Memory buffer alignment for direct I/O */ 163 + __u32 stx_dio_mem_align; 164 + 165 + /* File offset alignment for direct I/O */ 166 + __u32 stx_dio_offset_align; 167 + 129 168 /* 0xa0 */ 130 - __u64 stx_subvol; /* Subvolume identifier */ 131 - __u32 stx_atomic_write_unit_min; /* Min atomic write unit in bytes */ 132 - __u32 stx_atomic_write_unit_max; /* Max atomic write unit in bytes */ 169 + /* Subvolume identifier */ 170 + __u64 stx_subvol; 171 + 172 + /* Min atomic write unit in bytes */ 173 + __u32 stx_atomic_write_unit_min; 174 + 175 + /* Max atomic write unit in bytes */ 176 + __u32 stx_atomic_write_unit_max; 177 + 133 178 /* 0xb0 */ 134 - __u32 stx_atomic_write_segments_max; /* Max atomic write segment count */ 135 - __u32 __spare1[1]; 179 + /* Max atomic write segment count */ 180 + __u32 stx_atomic_write_segments_max; 181 + 182 + /* File offset alignment for direct I/O reads */ 183 + __u32 stx_dio_read_offset_align; 184 + 136 185 /* 0xb8 */ 137 186 __u64 __spare3[9]; /* Spare space for future expansion */ 187 + 138 188 /* 0x100 */ 139 189 }; 140 190 ··· 214 164 #define STATX_MNT_ID_UNIQUE 0x00004000U /* Want/got extended stx_mount_id */ 215 165 #define STATX_SUBVOL 0x00008000U /* Want/got stx_subvol */ 216 166 #define STATX_WRITE_ATOMIC 0x00010000U /* Want/got atomic_write_* fields */ 167 + #define STATX_DIO_READ_ALIGN 0x00020000U /* Want/got dio read alignment info */ 217 168 218 169 #define STATX__RESERVED 0x80000000U /* Reserved for future struct statx expansion */ 219 170