On Tue, Jan 16, 2024 at 10:33:08AM -0500, Brian Foster wrote:
> Hi Kent,
>
> JFYI, I'm seeing the following splat pretty reliably via generic/361 on
> an 80xcpu test box. The CI doesn't seem to produce this failure for
> whatever reason. This bisects down to commit 023f9ac9f70f ("bcachefs:
> Delete dio read alignment check"), before which the test still fails but
> the kernel doesn't explode.
>
> Brian
>
Can you test the following?
--- 8< ---
Subject: [PATCH] bcachefs: bios must be 512 byte algined
Fixes: 023f9ac9f70f bcachefs: Delete dio read alignment check
Reported-by: Brian Foster <[email protected]>
Signed-off-by: Kent Overstreet <[email protected]>
diff --git a/fs/bcachefs/fs-io-direct.c b/fs/bcachefs/fs-io-direct.c
index fdd57c5785c9..e3b219e19e10 100644
--- a/fs/bcachefs/fs-io-direct.c
+++ b/fs/bcachefs/fs-io-direct.c
@@ -77,6 +77,10 @@ static int bch2_direct_IO_read(struct kiocb *req, struct
iov_iter *iter)
bch2_inode_opts_get(&opts, c, &inode->ei_inode);
+ /* bios must be 512 byte aligned: */
+ if ((offset|iter->count) & (SECTOR_SIZE - 1))
+ return -EINVAL;
+
ret = min_t(loff_t, iter->count,
max_t(loff_t, 0, i_size_read(&inode->v) - offset));