projects
/
linux-block.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
c8c0227
)
xfs: support STATX_DIOALIGN
author
Eric Biggers
<ebiggers@google.com>
Sat, 27 Aug 2022 06:58:51 +0000
(23:58 -0700)
committer
Eric Biggers
<ebiggers@google.com>
Mon, 12 Sep 2022 00:47:12 +0000
(19:47 -0500)
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
fs/xfs/xfs_iops.c
patch
|
blob
|
blame
|
history
diff --git
a/fs/xfs/xfs_iops.c
b/fs/xfs/xfs_iops.c
index 45518b8c613c9a97fd364ccc7fead0fcf91f4771..f51c60d7e2054a42fa7490ec5d32db0a9d90a813 100644
(file)
--- a/
fs/xfs/xfs_iops.c
+++ b/
fs/xfs/xfs_iops.c
@@
-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;