Lines Matching refs:sector_nr
583 static struct page *scrub_stripe_get_page(struct scrub_stripe *stripe, int sector_nr)
586 int page_index = (sector_nr << fs_info->sectorsize_bits) >> PAGE_SHIFT;
592 int sector_nr)
596 return offset_in_page(sector_nr << fs_info->sectorsize_bits);
599 static void scrub_verify_one_metadata(struct scrub_stripe *stripe, int sector_nr)
603 const u64 logical = stripe->logical + (sector_nr << fs_info->sectorsize_bits);
604 const struct page *first_page = scrub_stripe_get_page(stripe, sector_nr);
605 const unsigned int first_off = scrub_stripe_get_page_offset(stripe, sector_nr);
620 bitmap_set(&stripe->csum_error_bitmap, sector_nr, sectors_per_tree);
621 bitmap_set(&stripe->error_bitmap, sector_nr, sectors_per_tree);
630 bitmap_set(&stripe->meta_error_bitmap, sector_nr, sectors_per_tree);
631 bitmap_set(&stripe->error_bitmap, sector_nr, sectors_per_tree);
640 bitmap_set(&stripe->meta_error_bitmap, sector_nr, sectors_per_tree);
641 bitmap_set(&stripe->error_bitmap, sector_nr, sectors_per_tree);
655 for (int i = sector_nr + 1; i < sector_nr + sectors_per_tree; i++) {
665 bitmap_set(&stripe->meta_error_bitmap, sector_nr, sectors_per_tree);
666 bitmap_set(&stripe->error_bitmap, sector_nr, sectors_per_tree);
674 if (stripe->sectors[sector_nr].generation !=
676 bitmap_set(&stripe->meta_error_bitmap, sector_nr, sectors_per_tree);
677 bitmap_set(&stripe->error_bitmap, sector_nr, sectors_per_tree);
682 stripe->sectors[sector_nr].generation);
685 bitmap_clear(&stripe->error_bitmap, sector_nr, sectors_per_tree);
686 bitmap_clear(&stripe->csum_error_bitmap, sector_nr, sectors_per_tree);
687 bitmap_clear(&stripe->meta_error_bitmap, sector_nr, sectors_per_tree);
690 static void scrub_verify_one_sector(struct scrub_stripe *stripe, int sector_nr)
693 struct scrub_sector_verification *sector = &stripe->sectors[sector_nr];
695 struct page *page = scrub_stripe_get_page(stripe, sector_nr);
696 unsigned int pgoff = scrub_stripe_get_page_offset(stripe, sector_nr);
700 ASSERT(sector_nr >= 0 && sector_nr < stripe->nr_sectors);
703 if (!test_bit(sector_nr, &stripe->extent_sector_bitmap))
707 if (test_bit(sector_nr, &stripe->io_error_bitmap))
720 if (unlikely(sector_nr + sectors_per_tree > stripe->nr_sectors)) {
724 (sector_nr << fs_info->sectorsize_bits),
728 scrub_verify_one_metadata(stripe, sector_nr);
737 clear_bit(sector_nr, &stripe->error_bitmap);
743 set_bit(sector_nr, &stripe->csum_error_bitmap);
744 set_bit(sector_nr, &stripe->error_bitmap);
746 clear_bit(sector_nr, &stripe->csum_error_bitmap);
747 clear_bit(sector_nr, &stripe->error_bitmap);
756 int sector_nr;
758 for_each_set_bit(sector_nr, &bitmap, stripe->nr_sectors) {
759 scrub_verify_one_sector(stripe, sector_nr);
760 if (stripe->sectors[sector_nr].is_metadata)
761 sector_nr += sectors_per_tree - 1;
789 int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio));
793 ASSERT(sector_nr < stripe->nr_sectors);
799 bitmap_set(&stripe->io_error_bitmap, sector_nr,
801 bitmap_set(&stripe->error_bitmap, sector_nr,
804 bitmap_clear(&stripe->io_error_bitmap, sector_nr,
879 int sector_nr;
913 for_each_set_bit(sector_nr, &stripe->extent_sector_bitmap, stripe->nr_sectors) {
916 if (stripe->sectors[sector_nr].is_metadata) {
920 if (!stripe->sectors[sector_nr].csum)
924 if (test_bit(sector_nr, &stripe->init_error_bitmap) &&
925 !test_bit(sector_nr, &stripe->error_bitmap)) {
931 if (!test_bit(sector_nr, &stripe->init_error_bitmap))
964 if (test_bit(sector_nr, &stripe->io_error_bitmap))
968 if (test_bit(sector_nr, &stripe->csum_error_bitmap))
972 if (test_bit(sector_nr, &stripe->meta_error_bitmap))
1103 int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio));
1108 ASSERT(sector_nr < stripe->nr_sectors);
1114 bitmap_set(&stripe->io_error_bitmap, sector_nr, num_sectors);
1115 bitmap_set(&stripe->error_bitmap, sector_nr, num_sectors);
1117 bitmap_clear(&stripe->io_error_bitmap, sector_nr, num_sectors);
1132 int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio));
1143 bitmap_set(&stripe->write_error_bitmap, sector_nr,
1200 int sector_nr;
1202 for_each_set_bit(sector_nr, &write_bitmap, stripe->nr_sectors) {
1203 struct page *page = scrub_stripe_get_page(stripe, sector_nr);
1204 unsigned int pgoff = scrub_stripe_get_page_offset(stripe, sector_nr);
1208 ASSERT(test_bit(sector_nr, &stripe->extent_sector_bitmap));
1211 if (bbio && sector_nr && !test_bit(sector_nr - 1, &write_bitmap)) {
1219 (sector_nr << fs_info->sectorsize_bits)) >>
1603 int sector_nr;
1623 for_each_set_bit(sector_nr, &csum_bitmap, stripe->nr_sectors) {
1624 stripe->sectors[sector_nr].csum = stripe->csums +
1625 sector_nr * fs_info->csum_size;