forked from luck/tmp_suning_uos_patched
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: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
1a41802701
commit
a019e9e197
|
@ -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,
|
||||
int create)
|
||||
{
|
||||
struct btrfs_fs_info *fs_info = inode->root->fs_info;
|
||||
struct extent_map_tree *em_tree = &inode->extent_tree;
|
||||
struct extent_map *em;
|
||||
int ret;
|
||||
|
@ -213,7 +212,6 @@ struct extent_map *btree_get_extent(struct btrfs_inode *inode,
|
|||
read_lock(&em_tree->lock);
|
||||
em = lookup_extent_mapping(em_tree, start, len);
|
||||
if (em) {
|
||||
em->bdev = fs_info->fs_devices->latest_bdev;
|
||||
read_unlock(&em_tree->lock);
|
||||
goto out;
|
||||
}
|
||||
|
@ -228,7 +226,6 @@ struct extent_map *btree_get_extent(struct btrfs_inode *inode,
|
|||
em->len = (u64)-1;
|
||||
em->block_len = (u64)-1;
|
||||
em->block_start = 0;
|
||||
em->bdev = fs_info->fs_devices->latest_bdev;
|
||||
|
||||
write_lock(&em_tree->lock);
|
||||
ret = add_extent_mapping(em_tree, em, 0);
|
||||
|
|
|
@ -3154,7 +3154,6 @@ static int __do_readpage(struct extent_io_tree *tree,
|
|||
offset = em->block_start + extent_offset;
|
||||
disk_io_size = iosize;
|
||||
}
|
||||
bdev = em->bdev;
|
||||
block_start = em->block_start;
|
||||
if (test_bit(EXTENT_FLAG_PREALLOC, &em->flags))
|
||||
block_start = EXTENT_MAP_HOLE;
|
||||
|
@ -3491,7 +3490,6 @@ static noinline_for_stack int __extent_writepage_io(struct inode *inode,
|
|||
iosize = min(em_end - cur, end - cur + 1);
|
||||
iosize = ALIGN(iosize, blocksize);
|
||||
offset = em->block_start + extent_offset;
|
||||
bdev = em->bdev;
|
||||
block_start = em->block_start;
|
||||
compressed = test_bit(EXTENT_FLAG_COMPRESSED, &em->flags);
|
||||
free_extent_map(em);
|
||||
|
|
|
@ -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) &&
|
||||
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 &&
|
||||
prev->flags == next->flags &&
|
||||
prev->map_lookup == next->map_lookup &&
|
||||
|
|
|
@ -42,15 +42,8 @@ struct extent_map {
|
|||
u64 block_len;
|
||||
u64 generation;
|
||||
unsigned long flags;
|
||||
struct {
|
||||
struct block_device *bdev;
|
||||
|
||||
/*
|
||||
* used for chunk mappings
|
||||
* flags & EXTENT_FLAG_FS_MAPPING must be set
|
||||
*/
|
||||
struct map_lookup *map_lookup;
|
||||
};
|
||||
/* Used for chunk mappings, flag EXTENT_FLAG_FS_MAPPING must be set */
|
||||
struct map_lookup *map_lookup;
|
||||
refcount_t refs;
|
||||
unsigned int compress_type;
|
||||
struct list_head list;
|
||||
|
|
|
@ -945,7 +945,6 @@ void btrfs_extent_item_to_extent_map(struct btrfs_inode *inode,
|
|||
u8 type = btrfs_file_extent_type(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);
|
||||
extent_start = key.offset;
|
||||
|
||||
|
|
|
@ -667,7 +667,6 @@ void btrfs_drop_extent_cache(struct btrfs_inode *inode, u64 start, u64 end,
|
|||
}
|
||||
|
||||
split->generation = gen;
|
||||
split->bdev = em->bdev;
|
||||
split->flags = flags;
|
||||
split->compress_type = em->compress_type;
|
||||
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,
|
|||
|
||||
split->start = start + len;
|
||||
split->len = em->start + em->len - (start + len);
|
||||
split->bdev = em->bdev;
|
||||
split->flags = flags;
|
||||
split->compress_type = em->compress_type;
|
||||
split->generation = gen;
|
||||
|
@ -2360,7 +2358,6 @@ static int fill_holes(struct btrfs_trans_handle *trans,
|
|||
hole_em->block_start = EXTENT_MAP_HOLE;
|
||||
hole_em->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->generation = trans->transid;
|
||||
|
||||
|
|
|
@ -5189,7 +5189,6 @@ int btrfs_cont_expand(struct inode *inode, loff_t oldsize, loff_t size)
|
|||
hole_em->block_len = 0;
|
||||
hole_em->orig_block_len = 0;
|
||||
hole_em->ram_bytes = hole_size;
|
||||
hole_em->bdev = fs_info->fs_devices->latest_bdev;
|
||||
hole_em->compress_type = BTRFS_COMPRESS_NONE;
|
||||
hole_em->generation = fs_info->generation;
|
||||
|
||||
|
@ -6967,8 +6966,6 @@ struct extent_map *btrfs_get_extent(struct btrfs_inode *inode,
|
|||
|
||||
read_lock(&em_tree->lock);
|
||||
em = lookup_extent_mapping(em_tree, start, len);
|
||||
if (em)
|
||||
em->bdev = fs_info->fs_devices->latest_bdev;
|
||||
read_unlock(&em_tree->lock);
|
||||
|
||||
if (em) {
|
||||
|
@ -6984,7 +6981,6 @@ struct extent_map *btrfs_get_extent(struct btrfs_inode *inode,
|
|||
err = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
em->bdev = fs_info->fs_devices->latest_bdev;
|
||||
em->start = EXTENT_MAP_HOLE;
|
||||
em->orig_start = EXTENT_MAP_HOLE;
|
||||
em->len = (u64)-1;
|
||||
|
@ -7243,7 +7239,6 @@ struct extent_map *btrfs_get_extent_fiemap(struct btrfs_inode *inode,
|
|||
err = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
em->bdev = NULL;
|
||||
|
||||
ASSERT(hole_em);
|
||||
/*
|
||||
|
@ -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 *em;
|
||||
struct btrfs_root *root = BTRFS_I(inode)->root;
|
||||
int ret;
|
||||
|
||||
ASSERT(type == BTRFS_ORDERED_PREALLOC ||
|
||||
|
@ -7621,7 +7615,6 @@ static struct extent_map *create_io_em(struct inode *inode, u64 start, u64 len,
|
|||
em->len = len;
|
||||
em->block_len = block_len;
|
||||
em->block_start = block_start;
|
||||
em->bdev = root->fs_info->fs_devices->latest_bdev;
|
||||
em->orig_block_len = orig_block_len;
|
||||
em->ram_bytes = ram_bytes;
|
||||
em->generation = -1;
|
||||
|
@ -10484,7 +10477,6 @@ static int __btrfs_prealloc_file_range(struct inode *inode, int mode,
|
|||
em->block_len = ins.offset;
|
||||
em->orig_block_len = ins.offset;
|
||||
em->ram_bytes = ins.offset;
|
||||
em->bdev = fs_info->fs_devices->latest_bdev;
|
||||
set_bit(EXTENT_FLAG_PREALLOC, &em->flags);
|
||||
em->generation = trans->transid;
|
||||
|
||||
|
|
|
@ -3194,7 +3194,6 @@ static noinline_for_stack
|
|||
int setup_extent_mapping(struct inode *inode, u64 start, u64 end,
|
||||
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 *em;
|
||||
int ret = 0;
|
||||
|
@ -3207,7 +3206,6 @@ int setup_extent_mapping(struct inode *inode, u64 start, u64 end,
|
|||
em->len = end + 1 - start;
|
||||
em->block_len = em->len;
|
||||
em->block_start = block_start;
|
||||
em->bdev = fs_info->fs_devices->latest_bdev;
|
||||
set_bit(EXTENT_FLAG_PINNED, &em->flags);
|
||||
|
||||
lock_extent(&BTRFS_I(inode)->io_tree, start, end);
|
||||
|
|
Loading…
Reference in New Issue
Block a user