mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-10 15:10:38 +00:00
bcachefs: support STATX_DIOALIGN for statx file
Add support for STATX_DIOALIGN to bcachefs, so that direct I/O alignment restrictions are exposed to userspace in a generic way. [Before] ``` ./statx_test /mnt/bcachefs/test statx(/mnt/bcachefs/test) = 0 dio mem align:0 dio offset align:0 ``` [After] ``` ./statx_test /mnt/bcachefs/test statx(/mnt/bcachefs/test) = 0 dio mem align:1 dio offset align:512 ``` Signed-off-by: Hongbo Li <lihongbo22@huawei.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
7aa7183e00
commit
95924420b0
@ -895,6 +895,16 @@ static int bch2_getattr(struct mnt_idmap *idmap,
|
||||
stat->subvol = inode->ei_subvol;
|
||||
stat->result_mask |= STATX_SUBVOL;
|
||||
|
||||
if ((request_mask & STATX_DIOALIGN) && S_ISREG(inode->v.i_mode)) {
|
||||
stat->result_mask |= STATX_DIOALIGN;
|
||||
/*
|
||||
* this is incorrect; we should be tracking this in superblock,
|
||||
* and checking the alignment of open devices
|
||||
*/
|
||||
stat->dio_mem_align = SECTOR_SIZE;
|
||||
stat->dio_offset_align = block_bytes(c);
|
||||
}
|
||||
|
||||
if (request_mask & STATX_BTIME) {
|
||||
stat->result_mask |= STATX_BTIME;
|
||||
stat->btime = bch2_time_to_timespec(c, inode->ei_inode.bi_otime);
|
||||
|
Loading…
x
Reference in New Issue
Block a user