]> git.baikalelectronics.ru Git - kernel.git/commitdiff
btrfs: simplify parameters of submit_read_repair() and rename
authorQu Wenruo <wqu@suse.com>
Mon, 21 Mar 2022 05:48:42 +0000 (13:48 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 16 May 2022 15:03:13 +0000 (17:03 +0200)
Cleanup the function submit_read_repair() by:

- Remove the fixed argument submit_bio_hook()
  The function is only called on buffered data read path, so the
  @submit_bio_hook argument is always btrfs_submit_data_bio().

  Since it's fixed, then there is no need to pass that argument at all.

- Rename the function to submit_data_read_repair()
  Just to be more explicit on all the 3 things, data, read and repair.

Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_io.c

index 3a25465cdad74c2e83683bd3c48b8d19e3a738db..326297148d3a69578c66a373ece7c4d0d7c25e09 100644 (file)
@@ -2715,12 +2715,13 @@ 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_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,
-                                     submit_bio_hook_t *submit_bio_hook)
+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)
 {
        struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
        const u32 sectorsize = fs_info->sectorsize;
@@ -2730,6 +2731,9 @@ static blk_status_t submit_read_repair(struct inode *inode,
 
        BUG_ON(bio_op(failed_bio) == REQ_OP_WRITE);
 
+       /* This repair is only for data */
+       ASSERT(is_data_inode(inode));
+
        /* We're here because we had some read errors or csum mismatch */
        ASSERT(error_bitmap);
 
@@ -2758,7 +2762,7 @@ static blk_status_t submit_read_repair(struct inode *inode,
                ret = btrfs_repair_one_sector(inode, failed_bio,
                                bio_offset + offset,
                                page, pgoff + offset, start + offset,
-                               failed_mirror, submit_bio_hook);
+                               failed_mirror, btrfs_submit_data_bio);
                if (!ret) {
                        /*
                         * We have submitted the read repair, the page release
@@ -3076,13 +3080,13 @@ static void end_bio_extent_readpage(struct bio *bio)
                                goto readpage_ok;
 
                        /*
-                        * btrfs_submit_read_repair() will handle all the good
+                        * submit_data_read_repair() will handle all the good
                         * and bad sectors, we just continue to the next bvec.
                         */
-                       submit_read_repair(inode, bio, bio_offset, page,
-                                          start - page_offset(page), start,
-                                          end, mirror, error_bitmap,
-                                          btrfs_submit_data_bio);
+                       submit_data_read_repair(inode, bio, bio_offset, page,
+                                               start - page_offset(page),
+                                               start, end, mirror,
+                                               error_bitmap);
 
                        ASSERT(bio_offset + len > bio_offset);
                        bio_offset += len;