mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Linux/vnops: implement STATX_DIOALIGN
This statx(2) mask returns the alignment restrictions for O_DIRECT access on the given file. We're expected to return both memory and IO alignment. For memory, it's always PAGE_SIZE. For IO, we return the current block size for the file, which is the required alignment for an arbitrary block, and for the first block we'll fall back to the ARC when necessary, so it should always work. Sponsored-by: https://despairlabs.com/sponsor/ Reviewed-by: Alexander Motin <mav@FreeBSD.org> Signed-off-by: Rob Norris <robn@despairlabs.com> Closes #16972
This commit is contained in:
@@ -128,6 +128,11 @@ idmap_reason = 'Idmapped mount needs kernel 5.12+'
|
||||
#
|
||||
cfr_reason = 'Kernel copy_file_range support required'
|
||||
|
||||
#
|
||||
# Some statx fields are not supported by all kernels
|
||||
#
|
||||
statx_reason = 'Needed statx(2) field not supported on this kernel'
|
||||
|
||||
if sys.platform.startswith('freebsd'):
|
||||
cfr_cross_reason = 'copy_file_range(2) cross-filesystem needs FreeBSD 14+'
|
||||
else:
|
||||
@@ -293,7 +298,8 @@ if sys.platform.startswith('freebsd'):
|
||||
'block_cloning/block_cloning_cross_enc_dataset':
|
||||
['SKIP', cfr_cross_reason],
|
||||
'block_cloning/block_cloning_copyfilerange_cross_dataset':
|
||||
['SKIP', cfr_cross_reason]
|
||||
['SKIP', cfr_cross_reason],
|
||||
'stat/statx_dioalign': ['SKIP', 'na_reason'],
|
||||
})
|
||||
elif sys.platform.startswith('linux'):
|
||||
maybe.update({
|
||||
@@ -361,6 +367,7 @@ elif sys.platform.startswith('linux'):
|
||||
'mmp/mmp_active_import': ['FAIL', known_reason],
|
||||
'mmp/mmp_exported_import': ['FAIL', known_reason],
|
||||
'mmp/mmp_inactive_import': ['FAIL', known_reason],
|
||||
'stat/statx_dioalign': ['SKIP', 'statx_reason'],
|
||||
})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user