mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-25 18:30:06 +00:00
btrfs: don't pass compressed pages to btrfs_writepage_endio_finish_ordered()
Since async_extent holds the compressed page, it would trigger the new ASSERT() in btrfs_mark_ordered_io_finished() which checks that the range is inside the page. Now btrfs_writepage_endio_finish_ordered() can accept @page == NULL, just pass NULL to btrfs_writepage_endio_finish_ordered(). Signed-off-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
9e895a8f7e
commit
584691748c
1 changed files with 1 additions and 4 deletions
|
@ -973,15 +973,12 @@ static noinline void submit_compressed_extents(struct async_chunk *async_chunk)
|
|||
async_extent->nr_pages,
|
||||
async_chunk->write_flags,
|
||||
async_chunk->blkcg_css)) {
|
||||
struct page *p = async_extent->pages[0];
|
||||
const u64 start = async_extent->start;
|
||||
const u64 end = start + async_extent->ram_size - 1;
|
||||
|
||||
p->mapping = inode->vfs_inode.i_mapping;
|
||||
btrfs_writepage_endio_finish_ordered(inode, p, start,
|
||||
btrfs_writepage_endio_finish_ordered(inode, NULL, start,
|
||||
end, false);
|
||||
|
||||
p->mapping = NULL;
|
||||
extent_clear_unlock_delalloc(inode, start, end, NULL, 0,
|
||||
PAGE_END_WRITEBACK |
|
||||
PAGE_SET_ERROR);
|
||||
|
|
Loading…
Reference in a new issue