btrfs: remove non-standard extent handling in __extent_writepage_io
__extent_writepage_io is never called for compressed or inline extents, or holes. Remove the not quite working code for them and replace it with asserts that these cases don't happen. Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
a994310aa2
commit
f22b5dcbd7
@ -1361,7 +1361,6 @@ static noinline_for_stack int __extent_writepage_io(struct btrfs_inode *inode,
|
||||
struct extent_map *em;
|
||||
int ret = 0;
|
||||
int nr = 0;
|
||||
bool compressed;
|
||||
|
||||
ret = btrfs_writepage_cow_fixup(page);
|
||||
if (ret) {
|
||||
@ -1419,10 +1418,14 @@ static noinline_for_stack int __extent_writepage_io(struct btrfs_inode *inode,
|
||||
ASSERT(cur < end);
|
||||
ASSERT(IS_ALIGNED(em->start, fs_info->sectorsize));
|
||||
ASSERT(IS_ALIGNED(em->len, fs_info->sectorsize));
|
||||
|
||||
block_start = em->block_start;
|
||||
compressed = test_bit(EXTENT_FLAG_COMPRESSED, &em->flags);
|
||||
disk_bytenr = em->block_start + extent_offset;
|
||||
|
||||
ASSERT(!test_bit(EXTENT_FLAG_COMPRESSED, &em->flags));
|
||||
ASSERT(block_start != EXTENT_MAP_HOLE);
|
||||
ASSERT(block_start != EXTENT_MAP_INLINE);
|
||||
|
||||
/*
|
||||
* Note that em_end from extent_map_end() and dirty_range_end from
|
||||
* find_next_dirty_byte() are all exclusive
|
||||
@ -1431,22 +1434,6 @@ static noinline_for_stack int __extent_writepage_io(struct btrfs_inode *inode,
|
||||
free_extent_map(em);
|
||||
em = NULL;
|
||||
|
||||
/*
|
||||
* compressed and inline extents are written through other
|
||||
* paths in the FS
|
||||
*/
|
||||
if (compressed || block_start == EXTENT_MAP_HOLE ||
|
||||
block_start == EXTENT_MAP_INLINE) {
|
||||
if (compressed)
|
||||
nr++;
|
||||
else
|
||||
btrfs_writepage_endio_finish_ordered(inode,
|
||||
page, cur, cur + iosize - 1, true);
|
||||
btrfs_page_clear_dirty(fs_info, page, cur, iosize);
|
||||
cur += iosize;
|
||||
continue;
|
||||
}
|
||||
|
||||
btrfs_set_range_writeback(inode, cur, cur + iosize - 1);
|
||||
if (!PageWriteback(page)) {
|
||||
btrfs_err(inode->root->fs_info,
|
||||
|
Loading…
Reference in New Issue
Block a user