mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-08 14:13:53 +00:00
xfs: support STATX_DIOALIGN
Add support for STATX_DIOALIGN to xfs, so that direct I/O alignment restrictions are exposed to userspace in a generic way. Signed-off-by: Eric Biggers <ebiggers@google.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Link: https://lore.kernel.org/r/20220827065851.135710-9-ebiggers@kernel.org
This commit is contained in:
parent
c8c02272a9
commit
61a223df42
@ -604,6 +604,16 @@ xfs_vn_getattr(
|
||||
stat->blksize = BLKDEV_IOSIZE;
|
||||
stat->rdev = inode->i_rdev;
|
||||
break;
|
||||
case S_IFREG:
|
||||
if (request_mask & STATX_DIOALIGN) {
|
||||
struct xfs_buftarg *target = xfs_inode_buftarg(ip);
|
||||
struct block_device *bdev = target->bt_bdev;
|
||||
|
||||
stat->result_mask |= STATX_DIOALIGN;
|
||||
stat->dio_mem_align = bdev_dma_alignment(bdev) + 1;
|
||||
stat->dio_offset_align = bdev_logical_block_size(bdev);
|
||||
}
|
||||
fallthrough;
|
||||
default:
|
||||
stat->blksize = xfs_stat_blksize(ip);
|
||||
stat->rdev = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user