Commit 921603c7 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by David Sterba

btrfs: pass a btrfs_bio to btrfs_use_append

struct btrfs_bio has all the information needed for btrfs_use_append, so
pass that instead of a btrfs_inode and file_offset.
Reviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 0d495430
...@@ -612,7 +612,7 @@ static bool btrfs_submit_chunk(struct bio *bio, int mirror_num) ...@@ -612,7 +612,7 @@ static bool btrfs_submit_chunk(struct bio *bio, int mirror_num)
u64 logical = bio->bi_iter.bi_sector << 9; u64 logical = bio->bi_iter.bi_sector << 9;
u64 length = bio->bi_iter.bi_size; u64 length = bio->bi_iter.bi_size;
u64 map_length = length; u64 map_length = length;
bool use_append = btrfs_use_zone_append(inode, logical); bool use_append = btrfs_use_zone_append(bbio);
struct btrfs_io_context *bioc = NULL; struct btrfs_io_context *bioc = NULL;
struct btrfs_io_stripe smap; struct btrfs_io_stripe smap;
blk_status_t ret; blk_status_t ret;
......
...@@ -950,7 +950,6 @@ static void calc_bio_boundaries(struct btrfs_bio_ctrl *bio_ctrl, ...@@ -950,7 +950,6 @@ static void calc_bio_boundaries(struct btrfs_bio_ctrl *bio_ctrl,
struct btrfs_inode *inode, u64 file_offset) struct btrfs_inode *inode, u64 file_offset)
{ {
struct btrfs_ordered_extent *ordered; struct btrfs_ordered_extent *ordered;
u64 logical = (bio_ctrl->bio->bi_iter.bi_sector << SECTOR_SHIFT);
/* /*
* Limit the extent to the ordered boundary for Zone Append. * Limit the extent to the ordered boundary for Zone Append.
...@@ -958,7 +957,7 @@ static void calc_bio_boundaries(struct btrfs_bio_ctrl *bio_ctrl, ...@@ -958,7 +957,7 @@ static void calc_bio_boundaries(struct btrfs_bio_ctrl *bio_ctrl,
* them. * them.
*/ */
if (bio_ctrl->compress_type == BTRFS_COMPRESS_NONE && if (bio_ctrl->compress_type == BTRFS_COMPRESS_NONE &&
btrfs_use_zone_append(inode, logical)) { btrfs_use_zone_append(btrfs_bio(bio_ctrl->bio))) {
ordered = btrfs_lookup_ordered_extent(inode, file_offset); ordered = btrfs_lookup_ordered_extent(inode, file_offset);
if (ordered) { if (ordered) {
bio_ctrl->len_to_oe_boundary = min_t(u32, U32_MAX, bio_ctrl->len_to_oe_boundary = min_t(u32, U32_MAX,
......
...@@ -1627,8 +1627,10 @@ void btrfs_free_redirty_list(struct btrfs_transaction *trans) ...@@ -1627,8 +1627,10 @@ void btrfs_free_redirty_list(struct btrfs_transaction *trans)
spin_unlock(&trans->releasing_ebs_lock); spin_unlock(&trans->releasing_ebs_lock);
} }
bool btrfs_use_zone_append(struct btrfs_inode *inode, u64 start) bool btrfs_use_zone_append(struct btrfs_bio *bbio)
{ {
u64 start = (bbio->bio.bi_iter.bi_sector << SECTOR_SHIFT);
struct btrfs_inode *inode = bbio->inode;
struct btrfs_fs_info *fs_info = inode->root->fs_info; struct btrfs_fs_info *fs_info = inode->root->fs_info;
struct btrfs_block_group *cache; struct btrfs_block_group *cache;
bool ret = false; bool ret = false;
......
...@@ -55,7 +55,7 @@ void btrfs_calc_zone_unusable(struct btrfs_block_group *cache); ...@@ -55,7 +55,7 @@ void btrfs_calc_zone_unusable(struct btrfs_block_group *cache);
void btrfs_redirty_list_add(struct btrfs_transaction *trans, void btrfs_redirty_list_add(struct btrfs_transaction *trans,
struct extent_buffer *eb); struct extent_buffer *eb);
void btrfs_free_redirty_list(struct btrfs_transaction *trans); void btrfs_free_redirty_list(struct btrfs_transaction *trans);
bool btrfs_use_zone_append(struct btrfs_inode *inode, u64 start); bool btrfs_use_zone_append(struct btrfs_bio *bbio);
void btrfs_record_physical_zoned(struct btrfs_bio *bbio); void btrfs_record_physical_zoned(struct btrfs_bio *bbio);
void btrfs_rewrite_logical_zoned(struct btrfs_ordered_extent *ordered); void btrfs_rewrite_logical_zoned(struct btrfs_ordered_extent *ordered);
bool btrfs_check_meta_write_pointer(struct btrfs_fs_info *fs_info, bool btrfs_check_meta_write_pointer(struct btrfs_fs_info *fs_info,
...@@ -181,7 +181,7 @@ static inline void btrfs_redirty_list_add(struct btrfs_transaction *trans, ...@@ -181,7 +181,7 @@ static inline void btrfs_redirty_list_add(struct btrfs_transaction *trans,
struct extent_buffer *eb) { } struct extent_buffer *eb) { }
static inline void btrfs_free_redirty_list(struct btrfs_transaction *trans) { } static inline void btrfs_free_redirty_list(struct btrfs_transaction *trans) { }
static inline bool btrfs_use_zone_append(struct btrfs_inode *inode, u64 start) static inline bool btrfs_use_zone_append(struct btrfs_bio *bbio)
{ {
return false; return false;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment