Lines Matching refs:sblock_bad

389 static int scrub_repair_block_from_good_copy(struct scrub_block *sblock_bad,
391 static int scrub_repair_sector_from_good_copy(struct scrub_block *sblock_bad,
998 struct scrub_block *sblock_bad; in scrub_handle_errored_block() local
1125 sblock_bad = sblocks_for_recheck[failed_mirror_index]; in scrub_handle_errored_block()
1128 scrub_recheck_block(fs_info, sblock_bad, 1); in scrub_handle_errored_block()
1130 if (!sblock_bad->header_error && !sblock_bad->checksum_error && in scrub_handle_errored_block()
1131 sblock_bad->no_io_error_seen) { in scrub_handle_errored_block()
1146 scrub_write_block_to_dev_replace(sblock_bad); in scrub_handle_errored_block()
1150 if (!sblock_bad->no_io_error_seen) { in scrub_handle_errored_block()
1157 } else if (sblock_bad->checksum_error) { in scrub_handle_errored_block()
1165 } else if (sblock_bad->header_error) { in scrub_handle_errored_block()
1172 if (sblock_bad->generation_error) in scrub_handle_errored_block()
1207 if (!scrub_is_page_on_raid56(sblock_bad->sectors[0])) { in scrub_handle_errored_block()
1215 struct scrub_recover *r = sblock_bad->sectors[0]->recover; in scrub_handle_errored_block()
1239 sblock_bad, sblock_other); in scrub_handle_errored_block()
1246 if (sblock_bad->no_io_error_seen && !sctx->is_dev_replace) in scrub_handle_errored_block()
1274 for (sector_num = 0; sector_num < sblock_bad->sector_count; in scrub_handle_errored_block()
1276 struct scrub_sector *sector_bad = sblock_bad->sectors[sector_num]; in scrub_handle_errored_block()
1283 if (scrub_is_page_on_raid56(sblock_bad->sectors[0])) { in scrub_handle_errored_block()
1316 sblock_other = sblock_bad; in scrub_handle_errored_block()
1325 ret = scrub_repair_sector_from_good_copy(sblock_bad, in scrub_handle_errored_block()
1346 scrub_recheck_block(fs_info, sblock_bad, 1); in scrub_handle_errored_block()
1347 if (!sblock_bad->header_error && in scrub_handle_errored_block()
1348 !sblock_bad->checksum_error && in scrub_handle_errored_block()
1349 sblock_bad->no_io_error_seen) in scrub_handle_errored_block()
1683 static int scrub_repair_block_from_good_copy(struct scrub_block *sblock_bad, in scrub_repair_block_from_good_copy() argument
1689 for (i = 0; i < sblock_bad->sector_count; i++) { in scrub_repair_block_from_good_copy()
1692 ret_sub = scrub_repair_sector_from_good_copy(sblock_bad, in scrub_repair_block_from_good_copy()
1701 static int scrub_repair_sector_from_good_copy(struct scrub_block *sblock_bad, in scrub_repair_sector_from_good_copy() argument
1705 struct scrub_sector *sector_bad = sblock_bad->sectors[sector_num]; in scrub_repair_sector_from_good_copy()
1707 struct btrfs_fs_info *fs_info = sblock_bad->sctx->fs_info; in scrub_repair_sector_from_good_copy()
1710 if (force_write || sblock_bad->header_error || in scrub_repair_sector_from_good_copy()
1711 sblock_bad->checksum_error || sector_bad->io_error) { in scrub_repair_sector_from_good_copy()
1716 if (!sblock_bad->dev->bdev) { in scrub_repair_sector_from_good_copy()
1722 bio_init(&bio, sblock_bad->dev->bdev, &bvec, 1, REQ_OP_WRITE); in scrub_repair_sector_from_good_copy()
1723 bio.bi_iter.bi_sector = (sblock_bad->physical + in scrub_repair_sector_from_good_copy()
1732 btrfs_dev_stat_inc_and_print(sblock_bad->dev, in scrub_repair_sector_from_good_copy()