Lines Matching refs:sblock_bad

219 static int scrub_repair_block_from_good_copy(struct scrub_block *sblock_bad,
221 static int scrub_repair_page_from_good_copy(struct scrub_block *sblock_bad,
831 struct scrub_block *sblock_bad; in scrub_handle_errored_block() local
943 sblock_bad = sblocks_for_recheck + failed_mirror_index; in scrub_handle_errored_block()
946 scrub_recheck_block(fs_info, sblock_bad, 1); in scrub_handle_errored_block()
948 if (!sblock_bad->header_error && !sblock_bad->checksum_error && in scrub_handle_errored_block()
949 sblock_bad->no_io_error_seen) { in scrub_handle_errored_block()
964 scrub_write_block_to_dev_replace(sblock_bad); in scrub_handle_errored_block()
968 if (!sblock_bad->no_io_error_seen) { in scrub_handle_errored_block()
975 } else if (sblock_bad->checksum_error) { in scrub_handle_errored_block()
983 } else if (sblock_bad->header_error) { in scrub_handle_errored_block()
990 if (sblock_bad->generation_error) in scrub_handle_errored_block()
1025 if (!scrub_is_page_on_raid56(sblock_bad->pagev[0])) { in scrub_handle_errored_block()
1033 struct scrub_recover *r = sblock_bad->pagev[0]->recover; in scrub_handle_errored_block()
1058 sblock_bad, sblock_other); in scrub_handle_errored_block()
1065 if (sblock_bad->no_io_error_seen && !sctx->is_dev_replace) in scrub_handle_errored_block()
1093 for (page_num = 0; page_num < sblock_bad->page_count; in scrub_handle_errored_block()
1095 struct scrub_page *page_bad = sblock_bad->pagev[page_num]; in scrub_handle_errored_block()
1102 if (scrub_is_page_on_raid56(sblock_bad->pagev[0])) { in scrub_handle_errored_block()
1137 sblock_other = sblock_bad; in scrub_handle_errored_block()
1146 ret = scrub_repair_page_from_good_copy(sblock_bad, in scrub_handle_errored_block()
1167 scrub_recheck_block(fs_info, sblock_bad, 1); in scrub_handle_errored_block()
1168 if (!sblock_bad->header_error && in scrub_handle_errored_block()
1169 !sblock_bad->checksum_error && in scrub_handle_errored_block()
1170 sblock_bad->no_io_error_seen) in scrub_handle_errored_block()
1528 static int scrub_repair_block_from_good_copy(struct scrub_block *sblock_bad, in scrub_repair_block_from_good_copy() argument
1534 for (page_num = 0; page_num < sblock_bad->page_count; page_num++) { in scrub_repair_block_from_good_copy()
1537 ret_sub = scrub_repair_page_from_good_copy(sblock_bad, in scrub_repair_block_from_good_copy()
1547 static int scrub_repair_page_from_good_copy(struct scrub_block *sblock_bad, in scrub_repair_page_from_good_copy() argument
1551 struct scrub_page *page_bad = sblock_bad->pagev[page_num]; in scrub_repair_page_from_good_copy()
1553 struct btrfs_fs_info *fs_info = sblock_bad->sctx->fs_info; in scrub_repair_page_from_good_copy()
1557 if (force_write || sblock_bad->header_error || in scrub_repair_page_from_good_copy()
1558 sblock_bad->checksum_error || page_bad->io_error) { in scrub_repair_page_from_good_copy()