Add a new statx field for (sub)volume identifiers, as implemented by btrfs and bcachefs. This includes bcachefs support; we'll definitely want btrfs support as well.
Showing the changes to include/uapi (1 of 5 files). Show all
Unified · Split
| @@ -126,8 +126,9 @@ struct statx { · 125 unmodified lines | |||
| 126 | __u64 stx_mnt_id; | 126 | __u64 stx_mnt_id; |
| 127 | __u32 stx_dio_mem_align; /* Memory buffer alignment for direct I/O */ | 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 */ | 128 | __u32 stx_dio_offset_align; /* File offset alignment for direct I/O */ |
| 129 | __u64 stx_subvol; /* Subvolume identifier */ | ||
| 129 | /* 0xa0 */ | 130 | /* 0xa0 */ |
| 130 | __u64 __spare3[12]; /* Spare space for future expansion */ | 131 | __u64 __spare3[11]; /* Spare space for future expansion */ |
| 131 | /* 0x100 */ | 132 | /* 0x100 */ |
| 132 | }; | 133 | }; |
| 133 | 134 | ||
| @@ -155,6 +156,7 @@ struct statx { · 21 unmodified lines | |||
| 155 | #define STATX_MNT_ID 0x00001000U /* Got stx_mnt_id */ | 156 | #define STATX_MNT_ID 0x00001000U /* Got stx_mnt_id */ |
| 156 | #define STATX_DIOALIGN 0x00002000U /* Want/got direct I/O alignment info */ | 157 | #define STATX_DIOALIGN 0x00002000U /* Want/got direct I/O alignment info */ |
| 157 | #define STATX_MNT_ID_UNIQUE 0x00004000U /* Want/got extended stx_mount_id */ | 158 | #define STATX_MNT_ID_UNIQUE 0x00004000U /* Want/got extended stx_mount_id */ |
| 159 | #define STATX_SUBVOL 0x00008000U /* Want/got stx_subvol */ | ||
| 158 | 160 | ||
| 159 | #define STATX__RESERVED 0x80000000U /* Reserved for future struct statx expansion */ | 161 | #define STATX__RESERVED 0x80000000U /* Reserved for future struct statx expansion */ |
| 160 | 162 | ||