• Home
  • Raw
  • Download

Lines Matching refs:sector

401 static void scrub_sector_get(struct scrub_sector *sector);
402 static void scrub_sector_put(struct scrub_sector *sector);
418 struct scrub_sector *sector);
424 static inline int scrub_is_page_on_raid56(struct scrub_sector *sector) in scrub_is_page_on_raid56() argument
426 return sector->recover && in scrub_is_page_on_raid56()
427 (sector->recover->bioc->map_type & BTRFS_BLOCK_GROUP_RAID56_MASK); in scrub_is_page_on_raid56()
1501 struct scrub_sector *sector; in scrub_setup_recheck_block() local
1506 sector = alloc_scrub_sector(sblock, logical, GFP_NOFS); in scrub_setup_recheck_block()
1507 if (!sector) { in scrub_setup_recheck_block()
1514 sector->flags = flags; in scrub_setup_recheck_block()
1515 sector->generation = generation; in scrub_setup_recheck_block()
1516 sector->have_csum = have_csum; in scrub_setup_recheck_block()
1518 memcpy(sector->csum, in scrub_setup_recheck_block()
1545 sector->recover = recover; in scrub_setup_recheck_block()
1563 struct scrub_sector *sector) in scrub_submit_raid56_bio_wait() argument
1567 bio->bi_iter.bi_sector = (sector->offset + sector->sblock->logical) >> in scrub_submit_raid56_bio_wait()
1571 raid56_parity_recover(bio, sector->recover->bioc, sector->sblock->mirror_num); in scrub_submit_raid56_bio_wait()
1592 struct scrub_sector *sector = sblock->sectors[i]; in scrub_recheck_block_on_raid56() local
1594 bio_add_scrub_sector(bio, sector, fs_info->sectorsize); in scrub_recheck_block_on_raid56()
1634 struct scrub_sector *sector = sblock->sectors[i]; in scrub_recheck_block() local
1639 sector->io_error = 1; in scrub_recheck_block()
1645 bio_add_scrub_sector(&bio, sector, fs_info->sectorsize); in scrub_recheck_block()
1646 bio.bi_iter.bi_sector = (sblock->physical + sector->offset) >> in scrub_recheck_block()
1651 sector->io_error = 1; in scrub_recheck_block()
1662 static inline int scrub_check_fsid(u8 fsid[], struct scrub_sector *sector) in scrub_check_fsid() argument
1664 struct btrfs_fs_devices *fs_devices = sector->sblock->dev->fs_devices; in scrub_check_fsid()
1766 struct scrub_sector *sector = sblock->sectors[sector_num]; in scrub_write_sector_to_dev_replace() local
1768 if (sector->io_error) in scrub_write_sector_to_dev_replace()
1769 memset(scrub_sector_get_kaddr(sector), 0, sectorsize); in scrub_write_sector_to_dev_replace()
1771 return scrub_add_sector_to_wr_bio(sblock->sctx, sector); in scrub_write_sector_to_dev_replace()
1802 struct scrub_sector *sector) in scrub_add_sector_to_wr_bio() argument
1804 struct scrub_block *sblock = sector->sblock; in scrub_add_sector_to_wr_bio()
1823 ret = fill_writer_pointer_gap(sctx, sector->offset + in scrub_add_sector_to_wr_bio()
1830 sbio->physical = sblock->physical_for_dev_replace + sector->offset; in scrub_add_sector_to_wr_bio()
1831 sbio->logical = sblock->logical + sector->offset; in scrub_add_sector_to_wr_bio()
1842 sblock->physical_for_dev_replace + sector->offset || in scrub_add_sector_to_wr_bio()
1844 sblock->logical + sector->offset) { in scrub_add_sector_to_wr_bio()
1849 ret = bio_add_scrub_sector(sbio->bio, sector, sectorsize); in scrub_add_sector_to_wr_bio()
1861 sbio->sectors[sbio->sector_count] = sector; in scrub_add_sector_to_wr_bio()
1862 scrub_sector_get(sector); in scrub_add_sector_to_wr_bio()
1868 scrub_block_get(sector->sblock); in scrub_add_sector_to_wr_bio()
1924 struct scrub_sector *sector = sbio->sectors[i]; in scrub_wr_bio_end_io_worker() local
1926 sector->io_error = 1; in scrub_wr_bio_end_io_worker()
1985 struct scrub_sector *sector; in scrub_checksum_data() local
1989 sector = sblock->sectors[0]; in scrub_checksum_data()
1990 if (!sector->have_csum) in scrub_checksum_data()
1993 kaddr = scrub_sector_get_kaddr(sector); in scrub_checksum_data()
2000 if (memcmp(csum, sector->csum, fs_info->csum_size)) in scrub_checksum_data()
2021 struct scrub_sector *sector; in scrub_checksum_tree_block() local
2029 sector = sblock->sectors[0]; in scrub_checksum_tree_block()
2030 kaddr = scrub_sector_get_kaddr(sector); in scrub_checksum_tree_block()
2049 if (!scrub_check_fsid(h->fsid, sector)) { in scrub_checksum_tree_block()
2088 if (sector->generation != btrfs_stack_header_generation(h)) { in scrub_checksum_tree_block()
2095 sector->generation); in scrub_checksum_tree_block()
2109 struct scrub_sector *sector; in scrub_checksum_super() local
2115 sector = sblock->sectors[0]; in scrub_checksum_super()
2116 kaddr = scrub_sector_get_kaddr(sector); in scrub_checksum_super()
2122 if (sector->generation != btrfs_super_generation(s)) in scrub_checksum_super()
2125 if (!scrub_check_fsid(s->fsid, sector)) in scrub_checksum_super()
2159 static void scrub_sector_get(struct scrub_sector *sector) in scrub_sector_get() argument
2161 atomic_inc(&sector->refs); in scrub_sector_get()
2164 static void scrub_sector_put(struct scrub_sector *sector) in scrub_sector_put() argument
2166 if (atomic_dec_and_test(&sector->refs)) in scrub_sector_put()
2167 kfree(sector); in scrub_sector_put()
2246 struct scrub_sector *sector) in scrub_add_sector_to_rd_bio() argument
2248 struct scrub_block *sblock = sector->sblock; in scrub_add_sector_to_rd_bio()
2272 sbio->physical = sblock->physical + sector->offset; in scrub_add_sector_to_rd_bio()
2273 sbio->logical = sblock->logical + sector->offset; in scrub_add_sector_to_rd_bio()
2284 sblock->physical + sector->offset || in scrub_add_sector_to_rd_bio()
2286 sblock->logical + sector->offset || in scrub_add_sector_to_rd_bio()
2292 sbio->sectors[sbio->sector_count] = sector; in scrub_add_sector_to_rd_bio()
2293 ret = bio_add_scrub_sector(sbio->bio, sector, sectorsize); in scrub_add_sector_to_rd_bio()
2408 struct scrub_sector *sector = sblock->sectors[i]; in scrub_missing_raid56_pages() local
2410 raid56_add_scrub_pages(rbio, scrub_sector_get_page(sector), in scrub_missing_raid56_pages()
2411 scrub_sector_get_page_offset(sector), in scrub_missing_raid56_pages()
2412 sector->offset + sector->sblock->logical); in scrub_missing_raid56_pages()
2451 struct scrub_sector *sector; in scrub_sectors() local
2459 sector = alloc_scrub_sector(sblock, logical, GFP_KERNEL); in scrub_sectors()
2460 if (!sector) { in scrub_sectors()
2467 sector->flags = flags; in scrub_sectors()
2468 sector->generation = gen; in scrub_sectors()
2470 sector->have_csum = 1; in scrub_sectors()
2471 memcpy(sector->csum, csum, sctx->fs_info->csum_size); in scrub_sectors()
2473 sector->have_csum = 0; in scrub_sectors()
2490 struct scrub_sector *sector = sblock->sectors[index]; in scrub_sectors() local
2493 ret = scrub_add_sector_to_rd_bio(sctx, sector); in scrub_sectors()
2529 struct scrub_sector *sector = sbio->sectors[i]; in scrub_bio_end_io_worker() local
2531 sector->io_error = 1; in scrub_bio_end_io_worker()
2532 sector->sblock->no_io_error_seen = 0; in scrub_bio_end_io_worker()
2538 struct scrub_sector *sector = sbio->sectors[i]; in scrub_bio_end_io_worker() local
2539 struct scrub_block *sblock = sector->sblock; in scrub_bio_end_io_worker()
2788 struct scrub_sector *sector; in scrub_sectors_for_parity() local
2790 sector = alloc_scrub_sector(sblock, logical, GFP_KERNEL); in scrub_sectors_for_parity()
2791 if (!sector) { in scrub_sectors_for_parity()
2798 sblock->sectors[index] = sector; in scrub_sectors_for_parity()
2800 scrub_sector_get(sector); in scrub_sectors_for_parity()
2801 list_add_tail(&sector->list, &sparity->sectors_list); in scrub_sectors_for_parity()
2802 sector->flags = flags; in scrub_sectors_for_parity()
2803 sector->generation = gen; in scrub_sectors_for_parity()
2805 sector->have_csum = 1; in scrub_sectors_for_parity()
2806 memcpy(sector->csum, csum, sctx->fs_info->csum_size); in scrub_sectors_for_parity()
2808 sector->have_csum = 0; in scrub_sectors_for_parity()
2819 struct scrub_sector *sector = sblock->sectors[index]; in scrub_sectors_for_parity() local
2822 ret = scrub_add_sector_to_rd_bio(sctx, sector); in scrub_sectors_for_parity()