mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
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
8 changed files with 2 additions and 31 deletions
|
@ -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,
|
||||||
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,
|
||||||
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,
|
||||||
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,
|
||||||
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)
|
||||||
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 {
|
||||||
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,
|
||||||
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,
|
||||||
}
|
}
|
||||||
|
|
||||||
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,
|
||||||
|
|
||||||
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 @@ out:
|
||||||
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)
|
||||||
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,
|
||||||
|
|
||||||
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,
|
||||||
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,
|
||||||
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,
|
||||||
{
|
{
|
||||||
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,
|
||||||
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,
|
||||||
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
|
||||||
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,
|
||||||
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);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue