Thread (117 messages) 117 messages, 8 authors, 2021-05-30

Re: [Patch v2 07/42] btrfs: pass btrfs_inode into btrfs_writepage_endio_finish_ordered()

From: Qu Wenruo <hidden>
Date: 2021-05-23 07:41:20


On 2021/5/22 上午8:24, Qu Wenruo wrote:

On 2021/5/21 下午10:27, Josef Bacik wrote:
quoted
On 4/27/21 7:03 PM, Qu Wenruo wrote:
quoted
There is a pretty bad abuse of btrfs_writepage_endio_finish_ordered() in
end_compressed_bio_write().

It passes compressed pages to btrfs_writepage_endio_finish_ordered(),
which is only supposed to accept inode pages.

Thankfully the important info here is the inode, so let's pass
btrfs_inode directly into btrfs_writepage_endio_finish_ordered(), and
make @page parameter optional.

By this, end_compressed_bio_write() can happily pass page=NULL while
still get everything done properly.

Also, to cooperate with such modification, replace @page parameter for
trace_btrfs_writepage_end_io_hook() with btrfs_inode.
Although this removes page_index info, the existing start/len should be
enough for most usage.

Signed-off-by: Qu Wenruo <redacted>
This was merged into misc-next yesterday it looks like, and it's caused
both of my VM's that do compression variations to panic on different
tests, one on btrfs/011 and one on btrfs/027.  I bisected it to this
patch, I'm not sure what's wrong with it but it needs to be dropped from
misc-next until it gets fixed otherwise it'll keep killing the overnight
xfstests runs.  Thanks,
Any dying message to share?

I just tried with "-o compress" mount option for btrfs/011 and
btrfs/027, none of them crashed on my local branch (full subpage RW
branch).
A full day passed, and still no reproduce.

And this patch really doesn't change anything for the involved
compressed write path.

And considering it's the BUG_ON() triggered inside btrfs_map_bio(), it
means we have some bio crossed stripe boundary.
It may be related to device size as that may change the on-disk data layout.

Mind to shared the full fstests config and disk layout?

Thanks,
Qu
Maybe it's some dependency missing or later subpage fixes needed?

Thanks,
Qu
quoted
Josef
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help