Message ID | 20230301134244.1378533-11-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: > btrfs_split_bio expects a btrfs_bio as argument and always allocates one. > Type both the orig_bio argument and the return value as struct btrfs_bio > to improve type safety. > > Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Qu Wenruo <wqu@suse.com> Thanks, Qu > --- > fs/btrfs/bio.c | 27 ++++++++++++++------------- > 1 file changed, 14 insertions(+), 13 deletions(-) > > diff --git a/fs/btrfs/bio.c b/fs/btrfs/bio.c > index 527081abca026f..cf09c6271edbee 100644 > --- a/fs/btrfs/bio.c > +++ b/fs/btrfs/bio.c > @@ -61,30 +61,31 @@ struct btrfs_bio *btrfs_bio_alloc(unsigned int nr_vecs, blk_opf_t opf, > return bbio; > } > > -static struct bio *btrfs_split_bio(struct btrfs_fs_info *fs_info, > - struct bio *orig, u64 map_length, > - bool use_append) > +static struct btrfs_bio *btrfs_split_bio(struct btrfs_fs_info *fs_info, > + struct btrfs_bio *orig_bbio, > + u64 map_length, bool use_append) > { > - struct btrfs_bio *orig_bbio = btrfs_bio(orig); > + struct btrfs_bio *bbio; > struct bio *bio; > > if (use_append) { > unsigned int nr_segs; > > - bio = bio_split_rw(orig, &fs_info->limits, &nr_segs, > + bio = bio_split_rw(&orig_bbio->bio, &fs_info->limits, &nr_segs, > &btrfs_clone_bioset, map_length); > } else { > - bio = bio_split(orig, map_length >> SECTOR_SHIFT, GFP_NOFS, > - &btrfs_clone_bioset); > + bio = bio_split(&orig_bbio->bio, map_length >> SECTOR_SHIFT, > + GFP_NOFS, &btrfs_clone_bioset); > } > - btrfs_bio_init(btrfs_bio(bio), orig_bbio->inode, NULL, orig_bbio); > + bbio = btrfs_bio(bio); > + btrfs_bio_init(bbio, orig_bbio->inode, NULL, orig_bbio); > > - btrfs_bio(bio)->file_offset = orig_bbio->file_offset; > - if (!(orig->bi_opf & REQ_BTRFS_ONE_ORDERED)) > + bbio->file_offset = orig_bbio->file_offset; > + if (!(orig_bbio->bio.bi_opf & REQ_BTRFS_ONE_ORDERED)) > orig_bbio->file_offset += map_length; > > atomic_inc(&orig_bbio->pending_ios); > - return bio; > + return bbio; > } > > static void btrfs_orig_write_end_io(struct bio *bio); > @@ -633,8 +634,8 @@ static bool btrfs_submit_chunk(struct btrfs_bio *bbio, int mirror_num) > map_length = min(map_length, fs_info->max_zone_append_size); > > if (map_length < length) { > - bio = btrfs_split_bio(fs_info, bio, map_length, use_append); > - bbio = btrfs_bio(bio); > + bbio = btrfs_split_bio(fs_info, bbio, map_length, use_append); > + bio = &bbio->bio; > } > > /*
On 01/03/2023 21:42, Christoph Hellwig wrote: > btrfs_split_bio expects a btrfs_bio as argument and always allocates one. > Type both the orig_bio argument and the return value as struct btrfs_bio > to improve type safety. > > Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Anand Jain <anand.jain@oracle.com>
diff --git a/fs/btrfs/bio.c b/fs/btrfs/bio.c index 527081abca026f..cf09c6271edbee 100644 --- a/fs/btrfs/bio.c +++ b/fs/btrfs/bio.c @@ -61,30 +61,31 @@ struct btrfs_bio *btrfs_bio_alloc(unsigned int nr_vecs, blk_opf_t opf, return bbio; } -static struct bio *btrfs_split_bio(struct btrfs_fs_info *fs_info, - struct bio *orig, u64 map_length, - bool use_append) +static struct btrfs_bio *btrfs_split_bio(struct btrfs_fs_info *fs_info, + struct btrfs_bio *orig_bbio, + u64 map_length, bool use_append) { - struct btrfs_bio *orig_bbio = btrfs_bio(orig); + struct btrfs_bio *bbio; struct bio *bio; if (use_append) { unsigned int nr_segs; - bio = bio_split_rw(orig, &fs_info->limits, &nr_segs, + bio = bio_split_rw(&orig_bbio->bio, &fs_info->limits, &nr_segs, &btrfs_clone_bioset, map_length); } else { - bio = bio_split(orig, map_length >> SECTOR_SHIFT, GFP_NOFS, - &btrfs_clone_bioset); + bio = bio_split(&orig_bbio->bio, map_length >> SECTOR_SHIFT, + GFP_NOFS, &btrfs_clone_bioset); } - btrfs_bio_init(btrfs_bio(bio), orig_bbio->inode, NULL, orig_bbio); + bbio = btrfs_bio(bio); + btrfs_bio_init(bbio, orig_bbio->inode, NULL, orig_bbio); - btrfs_bio(bio)->file_offset = orig_bbio->file_offset; - if (!(orig->bi_opf & REQ_BTRFS_ONE_ORDERED)) + bbio->file_offset = orig_bbio->file_offset; + if (!(orig_bbio->bio.bi_opf & REQ_BTRFS_ONE_ORDERED)) orig_bbio->file_offset += map_length; atomic_inc(&orig_bbio->pending_ios); - return bio; + return bbio; } static void btrfs_orig_write_end_io(struct bio *bio); @@ -633,8 +634,8 @@ static bool btrfs_submit_chunk(struct btrfs_bio *bbio, int mirror_num) map_length = min(map_length, fs_info->max_zone_append_size); if (map_length < length) { - bio = btrfs_split_bio(fs_info, bio, map_length, use_append); - bbio = btrfs_bio(bio); + bbio = btrfs_split_bio(fs_info, bbio, map_length, use_append); + bio = &bbio->bio; } /*
btrfs_split_bio expects a btrfs_bio as argument and always allocates one. Type both the orig_bio argument and the return value as struct btrfs_bio to improve type safety. Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/btrfs/bio.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-)