]> git.hungrycats.org Git - linux/commitdiff
Revert "btrfs: drop bio_set_dev where not needed"
authorJosef Bacik <josef@toxicpanda.com>
Mon, 18 Nov 2019 15:28:31 +0000 (07:28 -0800)
committerJosef Bacik <josef@toxicpanda.com>
Mon, 18 Nov 2019 15:28:31 +0000 (07:28 -0800)
This reverts commit 9016e5bc872d52f56093fcb09cca965d7124853b.

fs/btrfs/compression.c
fs/btrfs/extent_io.c

index ee834ef7beb4a375884f91c260c69246412f012e..53aee0db9d7135e949765d45185fb3fb9457280d 100644 (file)
@@ -422,6 +422,7 @@ blk_status_t btrfs_submit_compressed_write(struct inode *inode, u64 start,
        int pg_index = 0;
        struct page *page;
        u64 first_byte = disk_start;
+       struct block_device *bdev;
        blk_status_t ret;
        int skip_sum = BTRFS_I(inode)->flags & BTRFS_INODE_NODATASUM;
 
@@ -440,7 +441,10 @@ blk_status_t btrfs_submit_compressed_write(struct inode *inode, u64 start,
        cb->orig_bio = NULL;
        cb->nr_pages = nr_pages;
 
+       bdev = fs_info->fs_devices->latest_bdev;
+
        bio = btrfs_bio_alloc(first_byte);
+       bio_set_dev(bio, bdev);
        bio->bi_opf = REQ_OP_WRITE | write_flags;
        bio->bi_private = cb;
        bio->bi_end_io = end_compressed_bio_write;
@@ -488,6 +492,7 @@ blk_status_t btrfs_submit_compressed_write(struct inode *inode, u64 start,
                        }
 
                        bio = btrfs_bio_alloc(first_byte);
+                       bio_set_dev(bio, bdev);
                        bio->bi_opf = REQ_OP_WRITE | write_flags;
                        bio->bi_private = cb;
                        bio->bi_end_io = end_compressed_bio_write;
@@ -655,6 +660,7 @@ blk_status_t btrfs_submit_compressed_read(struct inode *inode, struct bio *bio,
        unsigned long nr_pages;
        unsigned long pg_index;
        struct page *page;
+       struct block_device *bdev;
        struct bio *comp_bio;
        u64 cur_disk_byte = (u64)bio->bi_iter.bi_sector << 9;
        u64 em_len;
@@ -705,6 +711,8 @@ blk_status_t btrfs_submit_compressed_read(struct inode *inode, struct bio *bio,
        if (!cb->compressed_pages)
                goto fail1;
 
+       bdev = fs_info->fs_devices->latest_bdev;
+
        for (pg_index = 0; pg_index < nr_pages; pg_index++) {
                cb->compressed_pages[pg_index] = alloc_page(GFP_NOFS |
                                                              __GFP_HIGHMEM);
@@ -723,6 +731,7 @@ blk_status_t btrfs_submit_compressed_read(struct inode *inode, struct bio *bio,
        cb->len = bio->bi_iter.bi_size;
 
        comp_bio = btrfs_bio_alloc(cur_disk_byte);
+       bio_set_dev(comp_bio, bdev);
        comp_bio->bi_opf = REQ_OP_READ;
        comp_bio->bi_private = cb;
        comp_bio->bi_end_io = end_compressed_bio_read;
@@ -773,6 +782,7 @@ blk_status_t btrfs_submit_compressed_read(struct inode *inode, struct bio *bio,
                        }
 
                        comp_bio = btrfs_bio_alloc(cur_disk_byte);
+                       bio_set_dev(comp_bio, bdev);
                        comp_bio->bi_opf = REQ_OP_READ;
                        comp_bio->bi_private = cb;
                        comp_bio->bi_end_io = end_compressed_bio_read;
index c6e28d5ed0fcc81a9d57f8bf53ee1bae1eb7ba3b..ceb3c028894ed454792b3ba8d73958c839e72157 100644 (file)
@@ -2544,6 +2544,7 @@ struct bio *btrfs_create_repair_bio(struct inode *inode, struct bio *failed_bio,
        bio = btrfs_io_bio_alloc(1);
        bio->bi_end_io = endio_func;
        bio->bi_iter.bi_sector = failrec->logical >> 9;
+       bio_set_dev(bio, fs_info->fs_devices->latest_bdev);
        bio->bi_iter.bi_size = 0;
        bio->bi_private = data;
 
@@ -2986,6 +2987,7 @@ static int submit_extent_page(unsigned int opf, struct extent_io_tree *tree,
        }
 
        bio = btrfs_bio_alloc(offset);
+       bio_set_dev(bio, bdev);
        bio_add_page(bio, page, page_size, pg_offset);
        bio->bi_end_io = end_io_func;
        bio->bi_private = tree;