btrfs: remove duplicated parameters from submit_data_read_repair()
The function submit_data_read_repair() is only called for buffered data read path, thus those members can be calculated using bvec directly: - start start = page_offset(bvec->bv_page) + bvec->bv_offset; - end end = start + bvec->bv_len - 1; - page page = bvec->bv_page; - pgoff pgoff = bvec->bv_offset; Thus we can safely replace those 4 parameters with just one bio_vec. Also remove the unused return value. Reviewed-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: Qu Wenruo <wqu@suse.com> [hch: also remove the return value] Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
ae643a74eb
commit
fd5a6f63cb
@ -2727,18 +2727,17 @@ static void end_page_read(struct page *page, bool uptodate, u64 start, u32 len)
|
||||
btrfs_subpage_end_reader(fs_info, page, start, len);
|
||||
}
|
||||
|
||||
static blk_status_t submit_data_read_repair(struct inode *inode,
|
||||
struct bio *failed_bio,
|
||||
u32 bio_offset, struct page *page,
|
||||
unsigned int pgoff,
|
||||
u64 start, u64 end,
|
||||
int failed_mirror,
|
||||
unsigned int error_bitmap)
|
||||
static void submit_data_read_repair(struct inode *inode, struct bio *failed_bio,
|
||||
u32 bio_offset, const struct bio_vec *bvec,
|
||||
int failed_mirror, unsigned int error_bitmap)
|
||||
{
|
||||
const unsigned int pgoff = bvec->bv_offset;
|
||||
struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
|
||||
struct page *page = bvec->bv_page;
|
||||
const u64 start = page_offset(bvec->bv_page) + bvec->bv_offset;
|
||||
const u64 end = start + bvec->bv_len - 1;
|
||||
const u32 sectorsize = fs_info->sectorsize;
|
||||
const int nr_bits = (end + 1 - start) >> fs_info->sectorsize_bits;
|
||||
int error = 0;
|
||||
int i;
|
||||
|
||||
BUG_ON(bio_op(failed_bio) == REQ_OP_WRITE);
|
||||
@ -2785,11 +2784,9 @@ static blk_status_t submit_data_read_repair(struct inode *inode,
|
||||
continue;
|
||||
}
|
||||
/*
|
||||
* Repair failed, just record the error but still continue.
|
||||
* Or the remaining sectors will not be properly unlocked.
|
||||
* Continue on failed repair, otherwise the remaining sectors
|
||||
* will not be properly unlocked.
|
||||
*/
|
||||
if (!error)
|
||||
error = ret;
|
||||
next:
|
||||
end_page_read(page, uptodate, start + offset, sectorsize);
|
||||
if (uptodate)
|
||||
@ -2802,7 +2799,6 @@ next:
|
||||
start + offset + sectorsize - 1,
|
||||
&cached);
|
||||
}
|
||||
return errno_to_blk_status(error);
|
||||
}
|
||||
|
||||
/* lots and lots of room for performance fixes in the end_bio funcs */
|
||||
@ -3095,10 +3091,8 @@ static void end_bio_extent_readpage(struct bio *bio)
|
||||
* submit_data_read_repair() will handle all the good
|
||||
* and bad sectors, we just continue to the next bvec.
|
||||
*/
|
||||
submit_data_read_repair(inode, bio, bio_offset, page,
|
||||
start - page_offset(page),
|
||||
start, end, mirror,
|
||||
error_bitmap);
|
||||
submit_data_read_repair(inode, bio, bio_offset, bvec,
|
||||
mirror, error_bitmap);
|
||||
|
||||
ASSERT(bio_offset + len > bio_offset);
|
||||
bio_offset += len;
|
||||
|
Loading…
Reference in New Issue
Block a user