[LTP] [PATCH v4 1/4] lapi/stat.h: Add STATX_DIOALIGN related definition

Yang Xu (Fujitsu) xuyang2018.jy@fujitsu.com
Thu Apr 27 03:36:31 CEST 2023



on 2023/04/27 5:56, Eric Biggers wrote:
> On Thu, Apr 06, 2023 at 01:40:19PM +0800, Yang Xu wrote:
>> Also add missing stx_mnt_id.
>>
>> Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com>
>> ---
>>   include/lapi/stat.h | 10 +++++++++-
>>   1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/include/lapi/stat.h b/include/lapi/stat.h
>> index ce1f2b678..c2db8a589 100644
>> --- a/include/lapi/stat.h
>> +++ b/include/lapi/stat.h
>> @@ -97,7 +97,11 @@ struct statx {
>>   	uint32_t	stx_dev_major;
>>   	uint32_t	stx_dev_minor;
>>   	/* 0x90 */
>> -	uint64_t	__spare2[14];
>> +	uint64_t	stx_mnt_id;
>> +	uint32_t	stx_dio_mem_align;
>> +	uint32_t	stx_dio_offset_align;
>> +	/* 0xa0 */
>> +	uint64_t	__spare1[12];
>>   	/* 0x100 */
>>   };
> 
> Not like it matters, but the kernel header has __spare3, not __spare1.

Yes, I know this.

Sorry, I don't explain this reason for using _spare1[12] in commit message.

Looks the history of this struct in the kernel header.

Since kernel commit a528d35e ("statx: Add a system call to make enhanced 
file info available")[1], it introduced 
__spare0[1],__spare1[1],__spare2[14].


Then in kernel commit 3209f68 ("statx: Include a mask for stx_attributes 
in struct statx")[2], it uses stx_attributes_mask to replace __spare1[1],
so it leaves a gap.


After kernel commit fa2fcf4f1 ("statx: add mount ID")[3], it uses 
stx_mnit_id and _spare2 , _spare3[12] to replace _spare2[14].

Finally, in kernel commit 825cf206 ("statx: add direct I/O alignment 
information")[4], use  stx_dio_mem_align and stx_dio_offset_align to 
replace _spare2. It also leaves a gap.

That is why I use __spare1[12] instead of _spare3[12].


[1]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/include/uapi/linux/stat.h?id=a528d35e8b
[2]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/include/uapi/linux/stat.h?id=3209f68b
[3]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/include/uapi/linux/stat.h?id=fa2fcf4f
[4]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/include/uapi/linux/stat.h?id=825cf206

Best Regards
Yang Xu

> 
> - Eric


More information about the ltp mailing list