btrfs: remove extent_map::bdev
authorDavid Sterba <dsterba@suse.com>
Fri, 30 Aug 2019 13:40:53 +0000 (15:40 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 18 Nov 2019 22:43:44 +0000 (23:43 +0100)
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>
fs/btrfs/disk-io.c
fs/btrfs/extent_io.c
fs/btrfs/extent_map.c
fs/btrfs/extent_map.h
fs/btrfs/file-item.c
fs/btrfs/file.c
fs/btrfs/inode.c
fs/btrfs/relocation.c

index 8783d86..e0edfdc 100644 (file)
@@ -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);
index c4fcfd7..586f9a1 100644 (file)
@@ -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);
index 9f99dcc..6f417ff 100644 (file)
@@ -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 &&
index 3eb9c59..8e21733 100644 (file)
@@ -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;
index 1a599f5..3270a40 100644 (file)
@@ -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;
 
index 32e6209..0cb43b6 100644 (file)
@@ -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 @@ out:
                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;
 
index b13c212..56032c5 100644 (file)
@@ -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;
 
index 2e16701..d897a8e 100644 (file)
@@ -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);