Lines Matching full:sector

137  * A structure to present a sector inside a page, the length is fixed to
268 * Even if the sector is not covered by bio, if it is in cache_rbio_pages()
269 * a data sector it should still be uptodate as it is in cache_rbio_pages()
357 /* Also update the sector->uptodate bits. */ in steal_rbio_page()
372 * Thus if the first sector of the page belongs to data stripes, then in is_data_stripe_page()
690 /* Return a sector from rbio->stripe_sectors, not from the bio list */
699 /* Grab a sector inside P stripe */
706 /* Grab a sector inside Q stripe, return NULL if not RAID6 */
947 * Get a sector pointer specified by its @stripe_nr and @sector_nr.
951 * @sector_nr: Sector number inside the stripe,
962 struct sector_ptr *sector; in sector_in_rbio() local
974 sector = &rbio->bio_sectors[index]; in sector_in_rbio()
975 if (sector->has_paddr || bio_list_only) { in sector_in_rbio()
976 /* Don't return sector without a valid page pointer */ in sector_in_rbio()
977 if (!sector->has_paddr) in sector_in_rbio()
978 sector = NULL; in sector_in_rbio()
980 return sector; in sector_in_rbio()
1127 * Add a single sector @sector into our list of bios for IO.
1134 struct sector_ptr *sector, in rbio_add_io_sector() argument
1155 ASSERT(sector->has_paddr); in rbio_add_io_sector()
1186 ret = bio_add_page(last, phys_to_page(sector->paddr), in rbio_add_io_sector()
1187 sectorsize, offset_in_page(sector->paddr)); in rbio_add_io_sector()
1200 __bio_add_page(bio, phys_to_page(sector->paddr), sectorsize, in rbio_add_io_sector()
1201 offset_in_page(sector->paddr)); in rbio_add_io_sector()
1217 struct sector_ptr *sector = &rbio->bio_sectors[index]; in index_one_bio() local
1219 sector->has_paddr = true; in index_one_bio()
1220 sector->paddr = paddr; in index_one_bio()
1299 static inline void *kmap_local_sector(const struct sector_ptr *sector) in kmap_local_sector() argument
1301 /* The sector pointer must have a page mapped to it. */ in kmap_local_sector()
1302 ASSERT(sector->has_paddr); in kmap_local_sector()
1304 return kmap_local_page(phys_to_page(sector->paddr)) + in kmap_local_sector()
1305 offset_in_page(sector->paddr); in kmap_local_sector()
1313 struct sector_ptr *sector; in generate_pq_vertical() local
1317 /* First collect one sector from each data stripe */ in generate_pq_vertical()
1319 sector = sector_in_rbio(rbio, stripe, sectornr, 0); in generate_pq_vertical()
1320 pointers[stripe] = kmap_local_sector(sector); in generate_pq_vertical()
1324 sector = rbio_pstripe_sector(rbio, sectornr); in generate_pq_vertical()
1325 sector->uptodate = 1; in generate_pq_vertical()
1326 pointers[stripe++] = kmap_local_sector(sector); in generate_pq_vertical()
1333 sector = rbio_qstripe_sector(rbio, sectornr); in generate_pq_vertical()
1334 sector->uptodate = 1; in generate_pq_vertical()
1335 pointers[stripe++] = kmap_local_sector(sector); in generate_pq_vertical()
1352 /* The total sector number inside the full stripe. */ in rmw_assemble_write_bios()
1360 /* We should have at least one data sector. */ in rmw_assemble_write_bios()
1375 struct sector_ptr *sector; in rmw_assemble_write_bios() local
1385 sector = sector_in_rbio(rbio, stripe, sectornr, 1); in rmw_assemble_write_bios()
1386 if (!sector) in rmw_assemble_write_bios()
1389 sector = rbio_stripe_sector(rbio, stripe, sectornr); in rmw_assemble_write_bios()
1392 ret = rbio_add_io_sector(rbio, bio_list, sector, stripe, in rmw_assemble_write_bios()
1410 struct sector_ptr *sector; in rmw_assemble_write_bios() local
1435 sector = sector_in_rbio(rbio, stripe, sectornr, 1); in rmw_assemble_write_bios()
1436 if (!sector) in rmw_assemble_write_bios()
1439 sector = rbio_stripe_sector(rbio, stripe, sectornr); in rmw_assemble_write_bios()
1442 ret = rbio_add_io_sector(rbio, bio_list, sector, in rmw_assemble_write_bios()
1491 * stripe_pages[], thus we need to locate the sector.
1499 struct sector_ptr *sector = &rbio->stripe_sectors[i]; in find_stripe_sector() local
1501 if (sector->has_paddr && sector->paddr == paddr) in find_stripe_sector()
1502 return sector; in find_stripe_sector()
1519 struct sector_ptr *sector = find_stripe_sector(rbio, paddr); in set_bio_pages_uptodate() local
1521 ASSERT(sector); in set_bio_pages_uptodate()
1522 if (sector) in set_bio_pages_uptodate()
1523 sector->uptodate = 1; in set_bio_pages_uptodate()
1585 /* No csum for this sector, skip to the next sector. */ in verify_bio_data_sectors()
1788 struct sector_ptr *sector; in verify_one_sector() local
1804 sector = sector_in_rbio(rbio, stripe_nr, sector_nr, 0); in verify_one_sector()
1806 sector = rbio_stripe_sector(rbio, stripe_nr, sector_nr); in verify_one_sector()
1812 ret = btrfs_check_block_csum(fs_info, sector->paddr, csum_buf, csum_expected); in verify_one_sector()
1825 struct sector_ptr *sector; in recover_vertical() local
1865 sector = sector_in_rbio(rbio, stripe_nr, sector_nr, 0); in recover_vertical()
1867 sector = rbio_stripe_sector(rbio, stripe_nr, sector_nr); in recover_vertical()
1869 pointers[stripe_nr] = kmap_local_sector(sector); in recover_vertical()
1949 * If possible, also check if the repaired sector matches its data in recover_vertical()
1957 sector = rbio_stripe_sector(rbio, faila, sector_nr); in recover_vertical()
1958 sector->uptodate = 1; in recover_vertical()
1965 sector = rbio_stripe_sector(rbio, failb, sector_nr); in recover_vertical()
1966 sector->uptodate = 1; in recover_vertical()
1983 * @pointers array stores the pointer for each sector. in recover_sectors()
2036 * not trust any cached sector. in recover_rbio()
2046 struct sector_ptr *sector; in recover_rbio() local
2063 sector = rbio_stripe_sector(rbio, stripe, sectornr); in recover_rbio()
2064 ret = rbio_add_io_sector(rbio, &bio_list, sector, stripe, in recover_rbio()
2253 struct sector_ptr *sector; in rmw_read_wait_recover() local
2257 sector = rbio_stripe_sector(rbio, stripe, sectornr); in rmw_read_wait_recover()
2258 ret = rbio_add_io_sector(rbio, &bio_list, sector, in rmw_read_wait_recover()
2305 * To determine if we need to read any sector from the disk.
2313 struct sector_ptr *sector = &rbio->stripe_sectors[i]; in need_read_stripe_sectors() local
2316 * We have a sector which doesn't have page nor uptodate, in need_read_stripe_sectors()
2320 if (!sector->has_paddr || !sector->uptodate) in need_read_stripe_sectors()
2341 * Either full stripe write, or we have every data sector already in rmw_rbio()
2571 struct sector_ptr *sector; in finish_parity_scrub() local
2576 sector = sector_in_rbio(rbio, stripe, sectornr, 0); in finish_parity_scrub()
2577 pointers[stripe] = kmap_local_sector(sector); in finish_parity_scrub()
2592 sector = rbio_stripe_sector(rbio, rbio->scrubp, sectornr); in finish_parity_scrub()
2593 parity = kmap_local_sector(sector); in finish_parity_scrub()
2619 struct sector_ptr *sector; in finish_parity_scrub() local
2621 sector = rbio_stripe_sector(rbio, rbio->scrubp, sectornr); in finish_parity_scrub()
2622 ret = rbio_add_io_sector(rbio, &bio_list, sector, rbio->scrubp, in finish_parity_scrub()
2637 struct sector_ptr *sector; in finish_parity_scrub() local
2639 sector = rbio_stripe_sector(rbio, rbio->scrubp, sectornr); in finish_parity_scrub()
2640 ret = rbio_add_io_sector(rbio, &bio_list, sector, in finish_parity_scrub()
2671 * @pointers array stores the pointer for each sector. in recover_scrub_rbio()
2758 struct sector_ptr *sector; in scrub_assemble_read_bios() local
2766 * read them from the disk. If sector_in_rbio() finds a sector in scrub_assemble_read_bios()
2769 sector = sector_in_rbio(rbio, stripe, sectornr, 1); in scrub_assemble_read_bios()
2770 if (sector) in scrub_assemble_read_bios()
2773 sector = rbio_stripe_sector(rbio, stripe, sectornr); in scrub_assemble_read_bios()
2775 * The bio cache may have handed us an uptodate sector. If so, in scrub_assemble_read_bios()
2778 if (sector->uptodate) in scrub_assemble_read_bios()
2781 ret = rbio_add_io_sector(rbio, &bio_list, sector, stripe, in scrub_assemble_read_bios()
2814 * We have every sector properly prepared. Can finish the scrub in scrub_rbio()