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

Configure Feed

Select the types of activity you want to include in your feed.

tools headers: Sync uapi/linux/fs.h with the kernel source

To pick up the changes in this cset:

76fdb7eb4e1c9108 uapi: export PROCFS_ROOT_INO
ca115d7e754691c0 tree-wide: s/struct fileattr/struct file_kattr/g
be7efb2d20d67f33 fs: introduce file_getattr and file_setattr syscalls
9eb22f7fedfc9eb1 fs: add ioctl to query metadata and protection info capabilities

This addresses these perf build warnings:

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

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

Cc: Christian Brauner <brauner@kernel.org>
Cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Namhyung Kim <namhyung@kernel.org>

+88
+88
tools/perf/trace/beauty/include/uapi/linux/fs.h
··· 60 60 #define RENAME_EXCHANGE (1 << 1) /* Exchange source and dest */ 61 61 #define RENAME_WHITEOUT (1 << 2) /* Whiteout source */ 62 62 63 + /* 64 + * The root inode of procfs is guaranteed to always have the same inode number. 65 + * For programs that make heavy use of procfs, verifying that the root is a 66 + * real procfs root and using openat2(RESOLVE_{NO_{XDEV,MAGICLINKS},BENEATH}) 67 + * will allow you to make sure you are never tricked into operating on the 68 + * wrong procfs file. 69 + */ 70 + enum procfs_ino { 71 + PROCFS_ROOT_INO = 1, 72 + }; 73 + 63 74 struct file_clone_range { 64 75 __s64 src_fd; 65 76 __u64 src_offset; ··· 100 89 struct fs_sysfs_path { 101 90 __u8 len; 102 91 __u8 name[128]; 92 + }; 93 + 94 + /* Protection info capability flags */ 95 + #define LBMD_PI_CAP_INTEGRITY (1 << 0) 96 + #define LBMD_PI_CAP_REFTAG (1 << 1) 97 + 98 + /* Checksum types for Protection Information */ 99 + #define LBMD_PI_CSUM_NONE 0 100 + #define LBMD_PI_CSUM_IP 1 101 + #define LBMD_PI_CSUM_CRC16_T10DIF 2 102 + #define LBMD_PI_CSUM_CRC64_NVME 4 103 + 104 + /* sizeof first published struct */ 105 + #define LBMD_SIZE_VER0 16 106 + 107 + /* 108 + * Logical block metadata capability descriptor 109 + * If the device does not support metadata, all the fields will be zero. 110 + * Applications must check lbmd_flags to determine whether metadata is 111 + * supported or not. 112 + */ 113 + struct logical_block_metadata_cap { 114 + /* Bitmask of logical block metadata capability flags */ 115 + __u32 lbmd_flags; 116 + /* 117 + * The amount of data described by each unit of logical block 118 + * metadata 119 + */ 120 + __u16 lbmd_interval; 121 + /* 122 + * Size in bytes of the logical block metadata associated with each 123 + * interval 124 + */ 125 + __u8 lbmd_size; 126 + /* 127 + * Size in bytes of the opaque block tag associated with each 128 + * interval 129 + */ 130 + __u8 lbmd_opaque_size; 131 + /* 132 + * Offset in bytes of the opaque block tag within the logical block 133 + * metadata 134 + */ 135 + __u8 lbmd_opaque_offset; 136 + /* Size in bytes of the T10 PI tuple associated with each interval */ 137 + __u8 lbmd_pi_size; 138 + /* Offset in bytes of T10 PI tuple within the logical block metadata */ 139 + __u8 lbmd_pi_offset; 140 + /* T10 PI guard tag type */ 141 + __u8 lbmd_guard_tag_type; 142 + /* Size in bytes of the T10 PI application tag */ 143 + __u8 lbmd_app_tag_size; 144 + /* Size in bytes of the T10 PI reference tag */ 145 + __u8 lbmd_ref_tag_size; 146 + /* Size in bytes of the T10 PI storage tag */ 147 + __u8 lbmd_storage_tag_size; 148 + __u8 pad; 103 149 }; 104 150 105 151 /* extent-same (dedupe) ioctls; these MUST match the btrfs ioctl definitions */ ··· 215 147 __u32 fsx_cowextsize; /* CoW extsize field value (get/set)*/ 216 148 unsigned char fsx_pad[8]; 217 149 }; 150 + 151 + /* 152 + * Variable size structure for file_[sg]et_attr(). 153 + * 154 + * Note. This is alternative to the structure 'struct file_kattr'/'struct fsxattr'. 155 + * As this structure is passed to/from userspace with its size, this can 156 + * be versioned based on the size. 157 + */ 158 + struct file_attr { 159 + __u64 fa_xflags; /* xflags field value (get/set) */ 160 + __u32 fa_extsize; /* extsize field value (get/set)*/ 161 + __u32 fa_nextents; /* nextents field value (get) */ 162 + __u32 fa_projid; /* project identifier (get/set) */ 163 + __u32 fa_cowextsize; /* CoW extsize field value (get/set) */ 164 + }; 165 + 166 + #define FILE_ATTR_SIZE_VER0 24 167 + #define FILE_ATTR_SIZE_LATEST FILE_ATTR_SIZE_VER0 218 168 219 169 /* 220 170 * Flags for the fsx_xflags field ··· 333 247 * also /sys/kernel/debug/ for filesystems with debugfs exports 334 248 */ 335 249 #define FS_IOC_GETFSSYSFSPATH _IOR(0x15, 1, struct fs_sysfs_path) 250 + /* Get logical block metadata capability details */ 251 + #define FS_IOC_GETLBMD_CAP _IOWR(0x15, 2, struct logical_block_metadata_cap) 336 252 337 253 /* 338 254 * Inode flags (FS_IOC_GETFLAGS / FS_IOC_SETFLAGS)