mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 12:03:54 +02:00
tools headers: Sync uapi/linux/fs.h with the kernel source
To pick up the changes in this cset:76fdb7eb4euapi: export PROCFS_ROOT_INOca115d7e75tree-wide: s/struct fileattr/struct file_kattr/gbe7efb2d20fs: introduce file_getattr and file_setattr syscalls9eb22f7fedfs: 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>
This commit is contained in:
parent
b18aabe283
commit
4a4083af03
|
|
@ -60,6 +60,17 @@
|
|||
#define RENAME_EXCHANGE (1 << 1) /* Exchange source and dest */
|
||||
#define RENAME_WHITEOUT (1 << 2) /* Whiteout source */
|
||||
|
||||
/*
|
||||
* The root inode of procfs is guaranteed to always have the same inode number.
|
||||
* For programs that make heavy use of procfs, verifying that the root is a
|
||||
* real procfs root and using openat2(RESOLVE_{NO_{XDEV,MAGICLINKS},BENEATH})
|
||||
* will allow you to make sure you are never tricked into operating on the
|
||||
* wrong procfs file.
|
||||
*/
|
||||
enum procfs_ino {
|
||||
PROCFS_ROOT_INO = 1,
|
||||
};
|
||||
|
||||
struct file_clone_range {
|
||||
__s64 src_fd;
|
||||
__u64 src_offset;
|
||||
|
|
@ -91,6 +102,63 @@ struct fs_sysfs_path {
|
|||
__u8 name[128];
|
||||
};
|
||||
|
||||
/* Protection info capability flags */
|
||||
#define LBMD_PI_CAP_INTEGRITY (1 << 0)
|
||||
#define LBMD_PI_CAP_REFTAG (1 << 1)
|
||||
|
||||
/* Checksum types for Protection Information */
|
||||
#define LBMD_PI_CSUM_NONE 0
|
||||
#define LBMD_PI_CSUM_IP 1
|
||||
#define LBMD_PI_CSUM_CRC16_T10DIF 2
|
||||
#define LBMD_PI_CSUM_CRC64_NVME 4
|
||||
|
||||
/* sizeof first published struct */
|
||||
#define LBMD_SIZE_VER0 16
|
||||
|
||||
/*
|
||||
* Logical block metadata capability descriptor
|
||||
* If the device does not support metadata, all the fields will be zero.
|
||||
* Applications must check lbmd_flags to determine whether metadata is
|
||||
* supported or not.
|
||||
*/
|
||||
struct logical_block_metadata_cap {
|
||||
/* Bitmask of logical block metadata capability flags */
|
||||
__u32 lbmd_flags;
|
||||
/*
|
||||
* The amount of data described by each unit of logical block
|
||||
* metadata
|
||||
*/
|
||||
__u16 lbmd_interval;
|
||||
/*
|
||||
* Size in bytes of the logical block metadata associated with each
|
||||
* interval
|
||||
*/
|
||||
__u8 lbmd_size;
|
||||
/*
|
||||
* Size in bytes of the opaque block tag associated with each
|
||||
* interval
|
||||
*/
|
||||
__u8 lbmd_opaque_size;
|
||||
/*
|
||||
* Offset in bytes of the opaque block tag within the logical block
|
||||
* metadata
|
||||
*/
|
||||
__u8 lbmd_opaque_offset;
|
||||
/* Size in bytes of the T10 PI tuple associated with each interval */
|
||||
__u8 lbmd_pi_size;
|
||||
/* Offset in bytes of T10 PI tuple within the logical block metadata */
|
||||
__u8 lbmd_pi_offset;
|
||||
/* T10 PI guard tag type */
|
||||
__u8 lbmd_guard_tag_type;
|
||||
/* Size in bytes of the T10 PI application tag */
|
||||
__u8 lbmd_app_tag_size;
|
||||
/* Size in bytes of the T10 PI reference tag */
|
||||
__u8 lbmd_ref_tag_size;
|
||||
/* Size in bytes of the T10 PI storage tag */
|
||||
__u8 lbmd_storage_tag_size;
|
||||
__u8 pad;
|
||||
};
|
||||
|
||||
/* extent-same (dedupe) ioctls; these MUST match the btrfs ioctl definitions */
|
||||
#define FILE_DEDUPE_RANGE_SAME 0
|
||||
#define FILE_DEDUPE_RANGE_DIFFERS 1
|
||||
|
|
@ -148,6 +216,24 @@ struct fsxattr {
|
|||
unsigned char fsx_pad[8];
|
||||
};
|
||||
|
||||
/*
|
||||
* Variable size structure for file_[sg]et_attr().
|
||||
*
|
||||
* Note. This is alternative to the structure 'struct file_kattr'/'struct fsxattr'.
|
||||
* As this structure is passed to/from userspace with its size, this can
|
||||
* be versioned based on the size.
|
||||
*/
|
||||
struct file_attr {
|
||||
__u64 fa_xflags; /* xflags field value (get/set) */
|
||||
__u32 fa_extsize; /* extsize field value (get/set)*/
|
||||
__u32 fa_nextents; /* nextents field value (get) */
|
||||
__u32 fa_projid; /* project identifier (get/set) */
|
||||
__u32 fa_cowextsize; /* CoW extsize field value (get/set) */
|
||||
};
|
||||
|
||||
#define FILE_ATTR_SIZE_VER0 24
|
||||
#define FILE_ATTR_SIZE_LATEST FILE_ATTR_SIZE_VER0
|
||||
|
||||
/*
|
||||
* Flags for the fsx_xflags field
|
||||
*/
|
||||
|
|
@ -247,6 +333,8 @@ struct fsxattr {
|
|||
* also /sys/kernel/debug/ for filesystems with debugfs exports
|
||||
*/
|
||||
#define FS_IOC_GETFSSYSFSPATH _IOR(0x15, 1, struct fs_sysfs_path)
|
||||
/* Get logical block metadata capability details */
|
||||
#define FS_IOC_GETLBMD_CAP _IOWR(0x15, 2, struct logical_block_metadata_cap)
|
||||
|
||||
/*
|
||||
* Inode flags (FS_IOC_GETFLAGS / FS_IOC_SETFLAGS)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user