Message ID | 20220425075418.2192130-3-hch@lst.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [01/10] btrfs: move more work into btrfs_end_bioc | expand |
On 2022/4/25 15:54, Christoph Hellwig wrote: > Remove the pointless goto just to return err and clean up the code flow > to be a little more straight forward. > > Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Qu Wenruo <wqu@suse.com> Thanks, Qu > --- > fs/btrfs/inode.c | 23 +++++++++-------------- > 1 file changed, 9 insertions(+), 14 deletions(-) > > diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c > index ef3bee1cbc6db..b188f724eff2d 100644 > --- a/fs/btrfs/inode.c > +++ b/fs/btrfs/inode.c > @@ -7899,31 +7899,28 @@ static inline blk_status_t btrfs_submit_dio_bio(struct bio *bio, > bool write = btrfs_op(bio) == BTRFS_MAP_WRITE; > blk_status_t ret; > > - /* Check btrfs_submit_bio_hook() for rules about async submit. */ > - if (async_submit) > - async_submit = !atomic_read(&BTRFS_I(inode)->sync_writers); > - > if (!write) { > ret = btrfs_bio_wq_end_io(fs_info, bio, BTRFS_WQ_ENDIO_DATA); > if (ret) > - goto err; > + return ret; > } > > if (BTRFS_I(inode)->flags & BTRFS_INODE_NODATASUM) > goto map; > > - if (write && async_submit) { > - ret = btrfs_wq_submit_bio(inode, bio, 0, 0, file_offset, > - btrfs_submit_bio_start_direct_io); > - goto err; > - } else if (write) { > + if (write) { > + /* check btrfs_submit_data_bio() for async submit rules */ > + if (async_submit && !atomic_read(&BTRFS_I(inode)->sync_writers)) > + return btrfs_wq_submit_bio(inode, bio, 0, 0, > + file_offset, > + btrfs_submit_bio_start_direct_io); > /* > * If we aren't doing async submit, calculate the csum of the > * bio now. > */ > ret = btrfs_csum_one_bio(BTRFS_I(inode), bio, file_offset, false); > if (ret) > - goto err; > + return ret; > } else { > u64 csum_offset; > > @@ -7933,9 +7930,7 @@ static inline blk_status_t btrfs_submit_dio_bio(struct bio *bio, > btrfs_bio(bio)->csum = dip->csums + csum_offset; > } > map: > - ret = btrfs_map_bio(fs_info, bio, 0); > -err: > - return ret; > + return btrfs_map_bio(fs_info, bio, 0); > } > > /*
Looks good,
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index ef3bee1cbc6db..b188f724eff2d 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -7899,31 +7899,28 @@ static inline blk_status_t btrfs_submit_dio_bio(struct bio *bio, bool write = btrfs_op(bio) == BTRFS_MAP_WRITE; blk_status_t ret; - /* Check btrfs_submit_bio_hook() for rules about async submit. */ - if (async_submit) - async_submit = !atomic_read(&BTRFS_I(inode)->sync_writers); - if (!write) { ret = btrfs_bio_wq_end_io(fs_info, bio, BTRFS_WQ_ENDIO_DATA); if (ret) - goto err; + return ret; } if (BTRFS_I(inode)->flags & BTRFS_INODE_NODATASUM) goto map; - if (write && async_submit) { - ret = btrfs_wq_submit_bio(inode, bio, 0, 0, file_offset, - btrfs_submit_bio_start_direct_io); - goto err; - } else if (write) { + if (write) { + /* check btrfs_submit_data_bio() for async submit rules */ + if (async_submit && !atomic_read(&BTRFS_I(inode)->sync_writers)) + return btrfs_wq_submit_bio(inode, bio, 0, 0, + file_offset, + btrfs_submit_bio_start_direct_io); /* * If we aren't doing async submit, calculate the csum of the * bio now. */ ret = btrfs_csum_one_bio(BTRFS_I(inode), bio, file_offset, false); if (ret) - goto err; + return ret; } else { u64 csum_offset; @@ -7933,9 +7930,7 @@ static inline blk_status_t btrfs_submit_dio_bio(struct bio *bio, btrfs_bio(bio)->csum = dip->csums + csum_offset; } map: - ret = btrfs_map_bio(fs_info, bio, 0); -err: - return ret; + return btrfs_map_bio(fs_info, bio, 0); } /*
Remove the pointless goto just to return err and clean up the code flow to be a little more straight forward. Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/btrfs/inode.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-)