diff options
author | Christoph Hellwig <hch@lst.de> | 2023-01-21 07:50:11 +0100 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2023-02-15 19:38:51 +0100 |
commit | 860c8c451661c72f05713ffdef3707f1fa9184d1 (patch) | |
tree | 0c22d529b6f1e874c46ec62841b9f2d274e1e524 | |
parent | 3d49d0d31237d11268959c7873c56aab166be07b (diff) | |
download | linux-860c8c451661c72f05713ffdef3707f1fa9184d1.tar.gz linux-860c8c451661c72f05713ffdef3707f1fa9184d1.tar.bz2 linux-860c8c451661c72f05713ffdef3707f1fa9184d1.zip |
btrfs: remove struct btrfs_bio::device field
The device field is only used by the simple end I/O handler, and for
that it can simply be stored in the bi_private field of the bio,
which is currently used for the fs_info that can be retrieved through
bbio->inode as well.
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r-- | fs/btrfs/bio.c | 10 | ||||
-rw-r--r-- | fs/btrfs/bio.h | 2 |
2 files changed, 5 insertions, 7 deletions
diff --git a/fs/btrfs/bio.c b/fs/btrfs/bio.c index 6ef953234068..5e545adf0aea 100644 --- a/fs/btrfs/bio.c +++ b/fs/btrfs/bio.c @@ -263,18 +263,19 @@ static void btrfs_end_bio_work(struct work_struct *work) if (bbio->bio.bi_opf & REQ_META) bbio->end_io(bbio); else - btrfs_check_read_bio(bbio, bbio->device); + btrfs_check_read_bio(bbio, bbio->bio.bi_private); } static void btrfs_simple_end_io(struct bio *bio) { - struct btrfs_fs_info *fs_info = bio->bi_private; struct btrfs_bio *bbio = btrfs_bio(bio); + struct btrfs_device *dev = bio->bi_private; + struct btrfs_fs_info *fs_info = bbio->inode->root->fs_info; btrfs_bio_counter_dec(fs_info); if (bio->bi_status) - btrfs_log_dev_io_error(bio, bbio->device); + btrfs_log_dev_io_error(bio, dev); if (bio_op(bio) == REQ_OP_READ) { INIT_WORK(&bbio->end_io_work, btrfs_end_bio_work); @@ -440,9 +441,8 @@ void btrfs_submit_bio(struct btrfs_fs_info *fs_info, struct bio *bio, int mirror if (!bioc) { /* Single mirror read/write fast path */ bbio->mirror_num = mirror_num; - bbio->device = smap.dev; bio->bi_iter.bi_sector = smap.physical >> SECTOR_SHIFT; - bio->bi_private = fs_info; + bio->bi_private = smap.dev; bio->bi_end_io = btrfs_simple_end_io; btrfs_submit_dev_bio(smap.dev, bio); } else if (bioc->map_type & BTRFS_BLOCK_GROUP_RAID56_MASK) { diff --git a/fs/btrfs/bio.h b/fs/btrfs/bio.h index 2e799c3348d5..61a791cf5360 100644 --- a/fs/btrfs/bio.h +++ b/fs/btrfs/bio.h @@ -45,8 +45,6 @@ struct btrfs_bio { struct btrfs_inode *inode; u64 file_offset; - /* @device is for stripe IO submission. */ - struct btrfs_device *device; union { /* For data checksum verification. */ struct { |