Lines Matching full:sector
59 * A bvec like structure to present a sector inside a page.
180 * Even if the sector is not covered by bio, if it is in cache_rbio_pages()
181 * a data sector it should still be uptodate as it is in cache_rbio_pages()
268 /* Also update the sector->uptodate bits. */ in steal_rbio_page()
283 * Thus if the first sector of the page belongs to data stripes, then in is_data_stripe_page()
603 /* Return a sector from rbio->stripe_sectors, not from the bio list */
612 /* Grab a sector inside P stripe */
619 /* Grab a sector inside Q stripe, return NULL if not RAID6 */
860 * Get a sector pointer specified by its @stripe_nr and @sector_nr.
864 * @sector_nr: Sector number inside the stripe,
875 struct sector_ptr *sector; in sector_in_rbio() local
885 sector = &rbio->bio_sectors[index]; in sector_in_rbio()
886 if (sector->page || bio_list_only) { in sector_in_rbio()
887 /* Don't return sector without a valid page pointer */ in sector_in_rbio()
888 if (!sector->page) in sector_in_rbio()
889 sector = NULL; in sector_in_rbio()
891 return sector; in sector_in_rbio()
1030 * Add a single sector @sector into our list of bios for IO.
1037 struct sector_ptr *sector, in rbio_add_io_sector() argument
1056 ASSERT(sector->page); in rbio_add_io_sector()
1087 ret = bio_add_page(last, sector->page, sectorsize, in rbio_add_io_sector()
1088 sector->pgoff); in rbio_add_io_sector()
1101 __bio_add_page(bio, sector->page, sectorsize, sector->pgoff); in rbio_add_io_sector()
1120 struct sector_ptr *sector = &rbio->bio_sectors[index]; in index_one_bio() local
1122 sector->page = bvec.bv_page; in index_one_bio()
1123 sector->pgoff = bvec.bv_offset + bvec_offset; in index_one_bio()
1124 ASSERT(sector->pgoff < PAGE_SIZE); in index_one_bio()
1189 struct sector_ptr *sector; in generate_pq_vertical() local
1193 /* First collect one sector from each data stripe */ in generate_pq_vertical()
1195 sector = sector_in_rbio(rbio, stripe, sectornr, 0); in generate_pq_vertical()
1196 pointers[stripe] = kmap_local_page(sector->page) + in generate_pq_vertical()
1197 sector->pgoff; in generate_pq_vertical()
1201 sector = rbio_pstripe_sector(rbio, sectornr); in generate_pq_vertical()
1202 sector->uptodate = 1; in generate_pq_vertical()
1203 pointers[stripe++] = kmap_local_page(sector->page) + sector->pgoff; in generate_pq_vertical()
1210 sector = rbio_qstripe_sector(rbio, sectornr); in generate_pq_vertical()
1211 sector->uptodate = 1; in generate_pq_vertical()
1212 pointers[stripe++] = kmap_local_page(sector->page) + in generate_pq_vertical()
1213 sector->pgoff; in generate_pq_vertical()
1229 /* The total sector number inside the full stripe. */ in rmw_assemble_write_bios()
1237 /* We should have at least one data sector. */ in rmw_assemble_write_bios()
1252 struct sector_ptr *sector; in rmw_assemble_write_bios() local
1262 sector = sector_in_rbio(rbio, stripe, sectornr, 1); in rmw_assemble_write_bios()
1263 if (!sector) in rmw_assemble_write_bios()
1266 sector = rbio_stripe_sector(rbio, stripe, sectornr); in rmw_assemble_write_bios()
1269 ret = rbio_add_io_sector(rbio, bio_list, sector, stripe, in rmw_assemble_write_bios()
1287 struct sector_ptr *sector; in rmw_assemble_write_bios() local
1312 sector = sector_in_rbio(rbio, stripe, sectornr, 1); in rmw_assemble_write_bios()
1313 if (!sector) in rmw_assemble_write_bios()
1316 sector = rbio_stripe_sector(rbio, stripe, sectornr); in rmw_assemble_write_bios()
1319 ret = rbio_add_io_sector(rbio, bio_list, sector, in rmw_assemble_write_bios()
1368 * stripe_pages[], thus we need to locate the sector.
1377 struct sector_ptr *sector = &rbio->stripe_sectors[i]; in find_stripe_sector() local
1379 if (sector->page == page && sector->pgoff == pgoff) in find_stripe_sector()
1380 return sector; in find_stripe_sector()
1398 struct sector_ptr *sector; in set_bio_pages_uptodate() local
1403 sector = find_stripe_sector(rbio, bvec->bv_page, pgoff); in set_bio_pages_uptodate()
1404 ASSERT(sector); in set_bio_pages_uptodate()
1405 if (sector) in set_bio_pages_uptodate()
1406 sector->uptodate = 1; in set_bio_pages_uptodate()
1417 struct sector_ptr *sector; in get_bio_sector_nr() local
1419 sector = &rbio->stripe_sectors[i]; in get_bio_sector_nr()
1420 if (sector->page == bv->bv_page && sector->pgoff == bv->bv_offset) in get_bio_sector_nr()
1422 sector = &rbio->bio_sectors[i]; in get_bio_sector_nr()
1423 if (sector->page == bv->bv_page && sector->pgoff == bv->bv_offset) in get_bio_sector_nr()
1479 /* No csum for this sector, skip to the next sector. */ in verify_bio_data_sectors()
1682 struct sector_ptr *sector; in verify_one_sector() local
1698 sector = sector_in_rbio(rbio, stripe_nr, sector_nr, 0); in verify_one_sector()
1700 sector = rbio_stripe_sector(rbio, stripe_nr, sector_nr); in verify_one_sector()
1703 ASSERT(sector->page); in verify_one_sector()
1708 ret = btrfs_check_sector_csum(fs_info, sector->page, sector->pgoff, in verify_one_sector()
1722 struct sector_ptr *sector; in recover_vertical() local
1762 sector = sector_in_rbio(rbio, stripe_nr, sector_nr, 0); in recover_vertical()
1764 sector = rbio_stripe_sector(rbio, stripe_nr, sector_nr); in recover_vertical()
1766 ASSERT(sector->page); in recover_vertical()
1767 pointers[stripe_nr] = kmap_local_page(sector->page) + in recover_vertical()
1768 sector->pgoff; in recover_vertical()
1848 * If possible, also check if the repaired sector matches its data in recover_vertical()
1856 sector = rbio_stripe_sector(rbio, faila, sector_nr); in recover_vertical()
1857 sector->uptodate = 1; in recover_vertical()
1864 sector = rbio_stripe_sector(rbio, failb, sector_nr); in recover_vertical()
1865 sector->uptodate = 1; in recover_vertical()
1882 * @pointers array stores the pointer for each sector. in recover_sectors()
1935 * not trust any cached sector. in recover_rbio()
1945 struct sector_ptr *sector; in recover_rbio() local
1962 sector = rbio_stripe_sector(rbio, stripe, sectornr); in recover_rbio()
1963 ret = rbio_add_io_sector(rbio, &bio_list, sector, stripe, in recover_rbio()
2152 struct sector_ptr *sector; in rmw_read_wait_recover() local
2156 sector = rbio_stripe_sector(rbio, stripe, sectornr); in rmw_read_wait_recover()
2157 ret = rbio_add_io_sector(rbio, &bio_list, sector, in rmw_read_wait_recover()
2205 * To determine if we need to read any sector from the disk.
2213 struct sector_ptr *sector = &rbio->stripe_sectors[i]; in need_read_stripe_sectors() local
2216 * We have a sector which doesn't have page nor uptodate, in need_read_stripe_sectors()
2220 if (!sector->page || !sector->uptodate) in need_read_stripe_sectors()
2241 * Either full stripe write, or we have every data sector already in rmw_rbio()
2466 struct sector_ptr *sector; in finish_parity_scrub() local
2471 sector = sector_in_rbio(rbio, stripe, sectornr, 0); in finish_parity_scrub()
2472 pointers[stripe] = kmap_local_page(sector->page) + in finish_parity_scrub()
2473 sector->pgoff; in finish_parity_scrub()
2487 sector = rbio_stripe_sector(rbio, rbio->scrubp, sectornr); in finish_parity_scrub()
2488 parity = kmap_local_page(sector->page) + sector->pgoff; in finish_parity_scrub()
2515 struct sector_ptr *sector; in finish_parity_scrub() local
2517 sector = rbio_stripe_sector(rbio, rbio->scrubp, sectornr); in finish_parity_scrub()
2518 ret = rbio_add_io_sector(rbio, &bio_list, sector, rbio->scrubp, in finish_parity_scrub()
2533 struct sector_ptr *sector; in finish_parity_scrub() local
2535 sector = rbio_stripe_sector(rbio, rbio->scrubp, sectornr); in finish_parity_scrub()
2536 ret = rbio_add_io_sector(rbio, &bio_list, sector, in finish_parity_scrub()
2567 * @pointers array stores the pointer for each sector. in recover_scrub_rbio()
2654 struct sector_ptr *sector; in scrub_assemble_read_bios() local
2662 * read them from the disk. If sector_in_rbio() finds a sector in scrub_assemble_read_bios()
2665 sector = sector_in_rbio(rbio, stripe, sectornr, 1); in scrub_assemble_read_bios()
2666 if (sector) in scrub_assemble_read_bios()
2669 sector = rbio_stripe_sector(rbio, stripe, sectornr); in scrub_assemble_read_bios()
2671 * The bio cache may have handed us an uptodate sector. If so, in scrub_assemble_read_bios()
2674 if (sector->uptodate) in scrub_assemble_read_bios()
2677 ret = rbio_add_io_sector(rbio, &bio_list, sector, stripe, in scrub_assemble_read_bios()
2710 * We have every sector properly prepared. Can finish the scrub in scrub_rbio()