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-22 00:24:54


On 2021/5/21 下午10:27, Josef Bacik wrote:
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).

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

Thanks,
Qu
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