These come from Linux v6.11-rc5. Signed-off-by: Aleksa Sarai <cyphar@xxxxxxxxxx> --- src/open_by_handle.c | 4 +++- src/statx.h | 22 ++++++++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/open_by_handle.c b/src/open_by_handle.c index 0f74ed08b1f0..d9c802ca9bd1 100644 --- a/src/open_by_handle.c +++ b/src/open_by_handle.c @@ -82,12 +82,14 @@ Examples: #include <string.h> #include <fcntl.h> #include <unistd.h> -#include <sys/stat.h> #include <sys/types.h> #include <errno.h> #include <linux/limits.h> #include <libgen.h> +#include <sys/stat.h> +#include "statx.h" + #define MAXFILES 1024 struct handle { diff --git a/src/statx.h b/src/statx.h index 3f239d791dfe..935cb2ed415e 100644 --- a/src/statx.h +++ b/src/statx.h @@ -102,7 +102,7 @@ struct statx { __u64 stx_ino; /* Inode number */ __u64 stx_size; /* File size */ __u64 stx_blocks; /* Number of 512-byte blocks allocated */ - __u64 __spare1[1]; + __u64 stx_attributes_mask; /* Mask to show what's supported in stx_attributes */ /* 0x40 */ struct statx_timestamp stx_atime; /* Last access time */ struct statx_timestamp stx_btime; /* File creation time */ @@ -114,7 +114,18 @@ struct statx { __u32 stx_dev_major; /* ID of device containing file [uncond] */ __u32 stx_dev_minor; /* 0x90 */ - __u64 __spare2[14]; /* Spare space for future expansion */ + __u64 stx_mnt_id; + __u32 stx_dio_mem_align; /* Memory buffer alignment for direct I/O */ + __u32 stx_dio_offset_align; /* File offset alignment for direct I/O */ + /* 0xa0 */ + __u64 stx_subvol; /* Subvolume identifier */ + __u32 stx_atomic_write_unit_min; /* Min atomic write unit in bytes */ + __u32 stx_atomic_write_unit_max; /* Max atomic write unit in bytes */ + /* 0xb0 */ + __u32 stx_atomic_write_segments_max; /* Max atomic write segment count */ + __u32 __spare1[1]; + /* 0xb8 */ + __u64 __spare3[9]; /* Spare space for future expansion */ /* 0x100 */ }; @@ -139,6 +150,13 @@ struct statx { #define STATX_BLOCKS 0x00000400U /* Want/got stx_blocks */ #define STATX_BASIC_STATS 0x000007ffU /* The stuff in the normal stat struct */ #define STATX_BTIME 0x00000800U /* Want/got stx_btime */ +#define STATX_MNT_ID 0x00001000U /* Got stx_mnt_id */ +#define STATX_DIOALIGN 0x00002000U /* Want/got direct I/O alignment info */ +#define STATX_MNT_ID_UNIQUE 0x00004000U /* Want/got extended stx_mount_id */ +#define STATX_SUBVOL 0x00008000U /* Want/got stx_subvol */ +#define STATX_WRITE_ATOMIC 0x00010000U /* Want/got atomic_write_* fields */ + +#define STATX__RESERVED 0x80000000U /* Reserved for future struct statx expansion */ #define STATX_ALL 0x00000fffU /* All currently supported flags */ /* -- 2.46.0