Commit a019e9e1 authored by David Sterba's avatar David Sterba

btrfs: remove extent_map::bdev

We can now remove the bdev from extent_map. Previous patches made sure
that bio_set_dev is correctly in all places and that we don't need to
grab it from latest_bdev or pass it around inside the extent map.
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 1a418027
...@@ -205,7 +205,6 @@ struct extent_map *btree_get_extent(struct btrfs_inode *inode, ...@@ -205,7 +205,6 @@ struct extent_map *btree_get_extent(struct btrfs_inode *inode,
struct page *page, size_t pg_offset, u64 start, u64 len, struct page *page, size_t pg_offset, u64 start, u64 len,
int create) int create)
{ {
struct btrfs_fs_info *fs_info = inode->root->fs_info;
struct extent_map_tree *em_tree = &inode->extent_tree; struct extent_map_tree *em_tree = &inode->extent_tree;
struct extent_map *em; struct extent_map *em;
int ret; int ret;
...@@ -213,7 +212,6 @@ struct extent_map *btree_get_extent(struct btrfs_inode *inode, ...@@ -213,7 +212,6 @@ struct extent_map *btree_get_extent(struct btrfs_inode *inode,
read_lock(&em_tree->lock); read_lock(&em_tree->lock);
em = lookup_extent_mapping(em_tree, start, len); em = lookup_extent_mapping(em_tree, start, len);
if (em) { if (em) {
em->bdev = fs_info->fs_devices->latest_bdev;
read_unlock(&em_tree->lock); read_unlock(&em_tree->lock);
goto out; goto out;
} }
...@@ -228,7 +226,6 @@ struct extent_map *btree_get_extent(struct btrfs_inode *inode, ...@@ -228,7 +226,6 @@ struct extent_map *btree_get_extent(struct btrfs_inode *inode,
em->len = (u64)-1; em->len = (u64)-1;
em->block_len = (u64)-1; em->block_len = (u64)-1;
em->block_start = 0; em->block_start = 0;
em->bdev = fs_info->fs_devices->latest_bdev;
write_lock(&em_tree->lock); write_lock(&em_tree->lock);
ret = add_extent_mapping(em_tree, em, 0); ret = add_extent_mapping(em_tree, em, 0);
......
...@@ -3154,7 +3154,6 @@ static int __do_readpage(struct extent_io_tree *tree, ...@@ -3154,7 +3154,6 @@ static int __do_readpage(struct extent_io_tree *tree,
offset = em->block_start + extent_offset; offset = em->block_start + extent_offset;
disk_io_size = iosize; disk_io_size = iosize;
} }
bdev = em->bdev;
block_start = em->block_start; block_start = em->block_start;
if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags)) if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags))
block_start = EXTENT_MAP_HOLE; block_start = EXTENT_MAP_HOLE;
...@@ -3491,7 +3490,6 @@ static noinline_for_stack int __extent_writepage_io(struct inode *inode, ...@@ -3491,7 +3490,6 @@ static noinline_for_stack int __extent_writepage_io(struct inode *inode,
iosize = min(em_end - cur, end - cur + 1); iosize = min(em_end - cur, end - cur + 1);
iosize = ALIGN(iosize, blocksize); iosize = ALIGN(iosize, blocksize);
offset = em->block_start + extent_offset; offset = em->block_start + extent_offset;
bdev = em->bdev;
block_start = em->block_start; block_start = em->block_start;
compressed = test_bit(EXTENT_FLAG_COMPRESSED, &em->flags); compressed = test_bit(EXTENT_FLAG_COMPRESSED, &em->flags);
free_extent_map(em); free_extent_map(em);
......
...@@ -218,9 +218,6 @@ static int mergable_maps(struct extent_map *prev, struct extent_map *next) ...@@ -218,9 +218,6 @@ static int mergable_maps(struct extent_map *prev, struct extent_map *next)
ASSERT(test_bit(EXTENT_FLAG_FS_MAPPING, &prev->flags) && ASSERT(test_bit(EXTENT_FLAG_FS_MAPPING, &prev->flags) &&
test_bit(EXTENT_FLAG_FS_MAPPING, &next->flags)); test_bit(EXTENT_FLAG_FS_MAPPING, &next->flags));
if (prev->bdev || next->bdev)
ASSERT(prev->bdev == next->bdev);
if (extent_map_end(prev) == next->start && if (extent_map_end(prev) == next->start &&
prev->flags == next->flags && prev->flags == next->flags &&
prev->map_lookup == next->map_lookup && prev->map_lookup == next->map_lookup &&
......
...@@ -42,15 +42,8 @@ struct extent_map { ...@@ -42,15 +42,8 @@ struct extent_map {
u64 block_len; u64 block_len;
u64 generation; u64 generation;
unsigned long flags; unsigned long flags;
struct { /* Used for chunk mappings, flag EXTENT_FLAG_FS_MAPPING must be set */
struct block_device *bdev;
/*
* used for chunk mappings
* flags & EXTENT_FLAG_FS_MAPPING must be set
*/
struct map_lookup *map_lookup; struct map_lookup *map_lookup;
};
refcount_t refs; refcount_t refs;
unsigned int compress_type; unsigned int compress_type;
struct list_head list; struct list_head list;
......
...@@ -945,7 +945,6 @@ void btrfs_extent_item_to_extent_map(struct btrfs_inode *inode, ...@@ -945,7 +945,6 @@ void btrfs_extent_item_to_extent_map(struct btrfs_inode *inode,
u8 type = btrfs_file_extent_type(leaf, fi); u8 type = btrfs_file_extent_type(leaf, fi);
int compress_type = btrfs_file_extent_compression(leaf, fi); int compress_type = btrfs_file_extent_compression(leaf, fi);
em->bdev = fs_info->fs_devices->latest_bdev;
btrfs_item_key_to_cpu(leaf, &key, slot); btrfs_item_key_to_cpu(leaf, &key, slot);
extent_start = key.offset; extent_start = key.offset;
......
...@@ -667,7 +667,6 @@ void btrfs_drop_extent_cache(struct btrfs_inode *inode, u64 start, u64 end, ...@@ -667,7 +667,6 @@ void btrfs_drop_extent_cache(struct btrfs_inode *inode, u64 start, u64 end,
} }
split->generation = gen; split->generation = gen;
split->bdev = em->bdev;
split->flags = flags; split->flags = flags;
split->compress_type = em->compress_type; split->compress_type = em->compress_type;
replace_extent_mapping(em_tree, em, split, modified); replace_extent_mapping(em_tree, em, split, modified);
...@@ -680,7 +679,6 @@ void btrfs_drop_extent_cache(struct btrfs_inode *inode, u64 start, u64 end, ...@@ -680,7 +679,6 @@ void btrfs_drop_extent_cache(struct btrfs_inode *inode, u64 start, u64 end,
split->start = start + len; split->start = start + len;
split->len = em->start + em->len - (start + len); split->len = em->start + em->len - (start + len);
split->bdev = em->bdev;
split->flags = flags; split->flags = flags;
split->compress_type = em->compress_type; split->compress_type = em->compress_type;
split->generation = gen; split->generation = gen;
...@@ -2360,7 +2358,6 @@ static int fill_holes(struct btrfs_trans_handle *trans, ...@@ -2360,7 +2358,6 @@ static int fill_holes(struct btrfs_trans_handle *trans,
hole_em->block_start = EXTENT_MAP_HOLE; hole_em->block_start = EXTENT_MAP_HOLE;
hole_em->block_len = 0; hole_em->block_len = 0;
hole_em->orig_block_len = 0; hole_em->orig_block_len = 0;
hole_em->bdev = fs_info->fs_devices->latest_bdev;
hole_em->compress_type = BTRFS_COMPRESS_NONE; hole_em->compress_type = BTRFS_COMPRESS_NONE;
hole_em->generation = trans->transid; hole_em->generation = trans->transid;
......
...@@ -5189,7 +5189,6 @@ int btrfs_cont_expand(struct inode *inode, loff_t oldsize, loff_t size) ...@@ -5189,7 +5189,6 @@ int btrfs_cont_expand(struct inode *inode, loff_t oldsize, loff_t size)
hole_em->block_len = 0; hole_em->block_len = 0;
hole_em->orig_block_len = 0; hole_em->orig_block_len = 0;
hole_em->ram_bytes = hole_size; hole_em->ram_bytes = hole_size;
hole_em->bdev = fs_info->fs_devices->latest_bdev;
hole_em->compress_type = BTRFS_COMPRESS_NONE; hole_em->compress_type = BTRFS_COMPRESS_NONE;
hole_em->generation = fs_info->generation; hole_em->generation = fs_info->generation;
...@@ -6967,8 +6966,6 @@ struct extent_map *btrfs_get_extent(struct btrfs_inode *inode, ...@@ -6967,8 +6966,6 @@ struct extent_map *btrfs_get_extent(struct btrfs_inode *inode,
read_lock(&em_tree->lock); read_lock(&em_tree->lock);
em = lookup_extent_mapping(em_tree, start, len); em = lookup_extent_mapping(em_tree, start, len);
if (em)
em->bdev = fs_info->fs_devices->latest_bdev;
read_unlock(&em_tree->lock); read_unlock(&em_tree->lock);
if (em) { if (em) {
...@@ -6984,7 +6981,6 @@ struct extent_map *btrfs_get_extent(struct btrfs_inode *inode, ...@@ -6984,7 +6981,6 @@ struct extent_map *btrfs_get_extent(struct btrfs_inode *inode,
err = -ENOMEM; err = -ENOMEM;
goto out; goto out;
} }
em->bdev = fs_info->fs_devices->latest_bdev;
em->start = EXTENT_MAP_HOLE; em->start = EXTENT_MAP_HOLE;
em->orig_start = EXTENT_MAP_HOLE; em->orig_start = EXTENT_MAP_HOLE;
em->len = (u64)-1; em->len = (u64)-1;
...@@ -7243,7 +7239,6 @@ struct extent_map *btrfs_get_extent_fiemap(struct btrfs_inode *inode, ...@@ -7243,7 +7239,6 @@ struct extent_map *btrfs_get_extent_fiemap(struct btrfs_inode *inode,
err = -ENOMEM; err = -ENOMEM;
goto out; goto out;
} }
em->bdev = NULL;
ASSERT(hole_em); ASSERT(hole_em);
/* /*
...@@ -7603,7 +7598,6 @@ static struct extent_map *create_io_em(struct inode *inode, u64 start, u64 len, ...@@ -7603,7 +7598,6 @@ static struct extent_map *create_io_em(struct inode *inode, u64 start, u64 len,
{ {
struct extent_map_tree *em_tree; struct extent_map_tree *em_tree;
struct extent_map *em; struct extent_map *em;
struct btrfs_root *root = BTRFS_I(inode)->root;
int ret; int ret;
ASSERT(type == BTRFS_ORDERED_PREALLOC || ASSERT(type == BTRFS_ORDERED_PREALLOC ||
...@@ -7621,7 +7615,6 @@ static struct extent_map *create_io_em(struct inode *inode, u64 start, u64 len, ...@@ -7621,7 +7615,6 @@ static struct extent_map *create_io_em(struct inode *inode, u64 start, u64 len,
em->len = len; em->len = len;
em->block_len = block_len; em->block_len = block_len;
em->block_start = block_start; em->block_start = block_start;
em->bdev = root->fs_info->fs_devices->latest_bdev;
em->orig_block_len = orig_block_len; em->orig_block_len = orig_block_len;
em->ram_bytes = ram_bytes; em->ram_bytes = ram_bytes;
em->generation = -1; em->generation = -1;
...@@ -10484,7 +10477,6 @@ static int __btrfs_prealloc_file_range(struct inode *inode, int mode, ...@@ -10484,7 +10477,6 @@ static int __btrfs_prealloc_file_range(struct inode *inode, int mode,
em->block_len = ins.offset; em->block_len = ins.offset;
em->orig_block_len = ins.offset; em->orig_block_len = ins.offset;
em->ram_bytes = ins.offset; em->ram_bytes = ins.offset;
em->bdev = fs_info->fs_devices->latest_bdev;
set_bit(EXTENT_FLAG_PREALLOC, &em->flags); set_bit(EXTENT_FLAG_PREALLOC, &em->flags);
em->generation = trans->transid; em->generation = trans->transid;
......
...@@ -3194,7 +3194,6 @@ static noinline_for_stack ...@@ -3194,7 +3194,6 @@ static noinline_for_stack
int setup_extent_mapping(struct inode *inode, u64 start, u64 end, int setup_extent_mapping(struct inode *inode, u64 start, u64 end,
u64 block_start) u64 block_start)
{ {
struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
struct extent_map_tree *em_tree = &BTRFS_I(inode)->extent_tree; struct extent_map_tree *em_tree = &BTRFS_I(inode)->extent_tree;
struct extent_map *em; struct extent_map *em;
int ret = 0; int ret = 0;
...@@ -3207,7 +3206,6 @@ int setup_extent_mapping(struct inode *inode, u64 start, u64 end, ...@@ -3207,7 +3206,6 @@ int setup_extent_mapping(struct inode *inode, u64 start, u64 end,
em->len = end + 1 - start; em->len = end + 1 - start;
em->block_len = em->len; em->block_len = em->len;
em->block_start = block_start; em->block_start = block_start;
em->bdev = fs_info->fs_devices->latest_bdev;
set_bit(EXTENT_FLAG_PINNED, &em->flags); set_bit(EXTENT_FLAG_PINNED, &em->flags);
lock_extent(&BTRFS_I(inode)->io_tree, start, end); lock_extent(&BTRFS_I(inode)->io_tree, start, end);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment