From 2b647852cb884b69bd4e9f065ff4629edab4ccbb Mon Sep 17 00:00:00 2001 From: Thomas de Zeeuw Date: Thu, 7 Aug 2025 21:36:22 +0200 Subject: [PATCH 1/3] Add additional fields to stax This is accurate for Linux v6.16. --- src/unix/linux_like/mod.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 30bad55e032f8..e5bcb14f76017 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -292,7 +292,14 @@ cfg_if! { pub stx_mnt_id: crate::__u64, pub stx_dio_mem_align: crate::__u32, pub stx_dio_offset_align: crate::__u32, - __statx_pad3: Padding<[crate::__u64; 12]>, + pub stx_subvol: crate::__u64, + pub stx_atomic_write_unit_min: crate::__u32, + pub stx_atomic_write_unit_max: crate::__u32, + pub stx_atomic_write_segments_max: crate::__u32, + pub stx_dio_read_offset_align: crate::__u32, + pub stx_atomic_write_unit_max_opt: crate::__u32, + __statx_pad2: [crate::__u32; 1], + __statx_pad3: [crate::__u64; 8], } pub struct statx_timestamp { From 4e642391378792c12303571cab25c5a1ca214e4f Mon Sep 17 00:00:00 2001 From: Thomas de Zeeuw Date: Sat, 9 Aug 2025 09:03:59 +0200 Subject: [PATCH 2/3] Only add fields on Linux Android doesn't have them (yet). --- src/unix/linux_like/mod.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index e5bcb14f76017..379c4e25f15d9 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -292,14 +292,26 @@ cfg_if! { pub stx_mnt_id: crate::__u64, pub stx_dio_mem_align: crate::__u32, pub stx_dio_offset_align: crate::__u32, + // The following fields are not available on Android as of + // August 6th 2025. + #[cfg(target_os = "linux")] pub stx_subvol: crate::__u64, + #[cfg(target_os = "linux")] pub stx_atomic_write_unit_min: crate::__u32, + #[cfg(target_os = "linux")] pub stx_atomic_write_unit_max: crate::__u32, + #[cfg(target_os = "linux")] pub stx_atomic_write_segments_max: crate::__u32, + #[cfg(target_os = "linux")] pub stx_dio_read_offset_align: crate::__u32, + #[cfg(target_os = "linux")] pub stx_atomic_write_unit_max_opt: crate::__u32, + #[cfg(target_os = "linux")] __statx_pad2: [crate::__u32; 1], + #[cfg(target_os = "linux")] __statx_pad3: [crate::__u64; 8], + #[cfg(not(target_os = "linux"))] + __statx_pad3: [crate::__u64; 12], } pub struct statx_timestamp { From 854ab511025b7bb7b51bb31951c60daaee693513 Mon Sep 17 00:00:00 2001 From: Thomas de Zeeuw Date: Sun, 28 Dec 2025 16:31:25 +0100 Subject: [PATCH 3/3] Add Padding wrapper to padding fields --- src/unix/linux_like/mod.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index 379c4e25f15d9..8882943c88669 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -307,11 +307,11 @@ cfg_if! { #[cfg(target_os = "linux")] pub stx_atomic_write_unit_max_opt: crate::__u32, #[cfg(target_os = "linux")] - __statx_pad2: [crate::__u32; 1], + __statx_pad2: Padding<[crate::__u32; 1]>, #[cfg(target_os = "linux")] - __statx_pad3: [crate::__u64; 8], + __statx_pad3: Padding<[crate::__u64; 8]>, #[cfg(not(target_os = "linux"))] - __statx_pad3: [crate::__u64; 12], + __statx_pad3: Padding<[crate::__u64; 12]>, } pub struct statx_timestamp {