Message ID | 20230301134244.1378533-7-hch@lst.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [01/10] btrfs: remove unused members from struct btrfs_encoded_read_private | expand |
Looks good,
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
On 2023/3/1 21:42, Christoph Hellwig wrote: > The original bio must be a btrfs_bio, so store a pointer to the > btrfs_bio for better type checking. > > Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Qu Wenruo <wqu@suse.com> Thanks, Qu > --- > fs/btrfs/compression.c | 15 ++++++++------- > fs/btrfs/compression.h | 2 +- > 2 files changed, 9 insertions(+), 8 deletions(-) > > diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c > index c12e317e133624..c5839d04690d67 100644 > --- a/fs/btrfs/compression.c > +++ b/fs/btrfs/compression.c > @@ -177,7 +177,7 @@ static void end_compressed_bio_read(struct btrfs_bio *bbio) > status = errno_to_blk_status(btrfs_decompress_bio(cb)); > > btrfs_free_compressed_pages(cb); > - btrfs_bio_end_io(btrfs_bio(cb->orig_bio), status); > + btrfs_bio_end_io(cb->orig_bbio, status); > bio_put(&bbio->bio); > } > > @@ -357,7 +357,8 @@ static noinline int add_ra_bio_pages(struct inode *inode, > { > struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); > unsigned long end_index; > - u64 cur = btrfs_bio(cb->orig_bio)->file_offset + cb->orig_bio->bi_iter.bi_size; > + struct bio *orig_bio = &cb->orig_bbio->bio; > + u64 cur = cb->orig_bbio->file_offset + orig_bio->bi_iter.bi_size; > u64 isize = i_size_read(inode); > int ret; > struct page *page; > @@ -447,7 +448,7 @@ static noinline int add_ra_bio_pages(struct inode *inode, > */ > if (!em || cur < em->start || > (cur + fs_info->sectorsize > extent_map_end(em)) || > - (em->block_start >> 9) != cb->orig_bio->bi_iter.bi_sector) { > + (em->block_start >> 9) != orig_bio->bi_iter.bi_sector) { > free_extent_map(em); > unlock_extent(tree, cur, page_end, NULL); > unlock_page(page); > @@ -467,7 +468,7 @@ static noinline int add_ra_bio_pages(struct inode *inode, > } > > add_size = min(em->start + em->len, page_end + 1) - cur; > - ret = bio_add_page(cb->orig_bio, page, add_size, offset_in_page(cur)); > + ret = bio_add_page(orig_bio, page, add_size, offset_in_page(cur)); > if (ret != add_size) { > unlock_extent(tree, cur, page_end, NULL); > unlock_page(page); > @@ -537,7 +538,7 @@ void btrfs_submit_compressed_read(struct btrfs_bio *bbio, int mirror_num) > cb->len = bbio->bio.bi_iter.bi_size; > cb->compressed_len = compressed_len; > cb->compress_type = em->compress_type; > - cb->orig_bio = &bbio->bio; > + cb->orig_bbio = bbio; > > free_extent_map(em); > > @@ -966,7 +967,7 @@ static int btrfs_decompress_bio(struct compressed_bio *cb) > put_workspace(type, workspace); > > if (!ret) > - zero_fill_bio(cb->orig_bio); > + zero_fill_bio(&cb->orig_bbio->bio); > return ret; > } > > @@ -1044,7 +1045,7 @@ void __cold btrfs_exit_compress(void) > int btrfs_decompress_buf2page(const char *buf, u32 buf_len, > struct compressed_bio *cb, u32 decompressed) > { > - struct bio *orig_bio = cb->orig_bio; > + struct bio *orig_bio = &cb->orig_bbio->bio; > /* Offset inside the full decompressed extent */ > u32 cur_offset; > > diff --git a/fs/btrfs/compression.h b/fs/btrfs/compression.h > index 692bafa1050e8e..5d5146e72a860b 100644 > --- a/fs/btrfs/compression.h > +++ b/fs/btrfs/compression.h > @@ -55,7 +55,7 @@ struct compressed_bio { > > union { > /* For reads, this is the bio we are copying the data into */ > - struct bio *orig_bio; > + struct btrfs_bio *orig_bbio; > struct work_struct write_end_work; > }; >
On 01/03/2023 21:42, Christoph Hellwig wrote: > The original bio must be a btrfs_bio, so store a pointer to the > btrfs_bio for better type checking. > > Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Anand Jain <anand.jain@oracle.com>
diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c index c12e317e133624..c5839d04690d67 100644 --- a/fs/btrfs/compression.c +++ b/fs/btrfs/compression.c @@ -177,7 +177,7 @@ static void end_compressed_bio_read(struct btrfs_bio *bbio) status = errno_to_blk_status(btrfs_decompress_bio(cb)); btrfs_free_compressed_pages(cb); - btrfs_bio_end_io(btrfs_bio(cb->orig_bio), status); + btrfs_bio_end_io(cb->orig_bbio, status); bio_put(&bbio->bio); } @@ -357,7 +357,8 @@ static noinline int add_ra_bio_pages(struct inode *inode, { struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); unsigned long end_index; - u64 cur = btrfs_bio(cb->orig_bio)->file_offset + cb->orig_bio->bi_iter.bi_size; + struct bio *orig_bio = &cb->orig_bbio->bio; + u64 cur = cb->orig_bbio->file_offset + orig_bio->bi_iter.bi_size; u64 isize = i_size_read(inode); int ret; struct page *page; @@ -447,7 +448,7 @@ static noinline int add_ra_bio_pages(struct inode *inode, */ if (!em || cur < em->start || (cur + fs_info->sectorsize > extent_map_end(em)) || - (em->block_start >> 9) != cb->orig_bio->bi_iter.bi_sector) { + (em->block_start >> 9) != orig_bio->bi_iter.bi_sector) { free_extent_map(em); unlock_extent(tree, cur, page_end, NULL); unlock_page(page); @@ -467,7 +468,7 @@ static noinline int add_ra_bio_pages(struct inode *inode, } add_size = min(em->start + em->len, page_end + 1) - cur; - ret = bio_add_page(cb->orig_bio, page, add_size, offset_in_page(cur)); + ret = bio_add_page(orig_bio, page, add_size, offset_in_page(cur)); if (ret != add_size) { unlock_extent(tree, cur, page_end, NULL); unlock_page(page); @@ -537,7 +538,7 @@ void btrfs_submit_compressed_read(struct btrfs_bio *bbio, int mirror_num) cb->len = bbio->bio.bi_iter.bi_size; cb->compressed_len = compressed_len; cb->compress_type = em->compress_type; - cb->orig_bio = &bbio->bio; + cb->orig_bbio = bbio; free_extent_map(em); @@ -966,7 +967,7 @@ static int btrfs_decompress_bio(struct compressed_bio *cb) put_workspace(type, workspace); if (!ret) - zero_fill_bio(cb->orig_bio); + zero_fill_bio(&cb->orig_bbio->bio); return ret; } @@ -1044,7 +1045,7 @@ void __cold btrfs_exit_compress(void) int btrfs_decompress_buf2page(const char *buf, u32 buf_len, struct compressed_bio *cb, u32 decompressed) { - struct bio *orig_bio = cb->orig_bio; + struct bio *orig_bio = &cb->orig_bbio->bio; /* Offset inside the full decompressed extent */ u32 cur_offset; diff --git a/fs/btrfs/compression.h b/fs/btrfs/compression.h index 692bafa1050e8e..5d5146e72a860b 100644 --- a/fs/btrfs/compression.h +++ b/fs/btrfs/compression.h @@ -55,7 +55,7 @@ struct compressed_bio { union { /* For reads, this is the bio we are copying the data into */ - struct bio *orig_bio; + struct btrfs_bio *orig_bbio; struct work_struct write_end_work; };
The original bio must be a btrfs_bio, so store a pointer to the btrfs_bio for better type checking. Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/btrfs/compression.c | 15 ++++++++------- fs/btrfs/compression.h | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-)