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()
1681 struct sector_ptr *sector; in verify_one_sector() local
1697 sector = sector_in_rbio(rbio, stripe_nr, sector_nr, 0); in verify_one_sector()
1699 sector = rbio_stripe_sector(rbio, stripe_nr, sector_nr); in verify_one_sector()
1702 ASSERT(sector->page); in verify_one_sector()
1707 ret = btrfs_check_sector_csum(fs_info, sector->page, sector->pgoff, in verify_one_sector()
1721 struct sector_ptr *sector; in recover_vertical() local
1761 sector = sector_in_rbio(rbio, stripe_nr, sector_nr, 0); in recover_vertical()
1763 sector = rbio_stripe_sector(rbio, stripe_nr, sector_nr); in recover_vertical()
1765 ASSERT(sector->page); in recover_vertical()
1766 pointers[stripe_nr] = kmap_local_page(sector->page) + in recover_vertical()
1767 sector->pgoff; in recover_vertical()
1847 * If possible, also check if the repaired sector matches its data in recover_vertical()
1855 sector = rbio_stripe_sector(rbio, faila, sector_nr); in recover_vertical()
1856 sector->uptodate = 1; in recover_vertical()
1863 sector = rbio_stripe_sector(rbio, failb, sector_nr); in recover_vertical()
1864 sector->uptodate = 1; in recover_vertical()
1881 * @pointers array stores the pointer for each sector. in recover_sectors()
1934 * not trust any cached sector. in recover_rbio()
1944 struct sector_ptr *sector; in recover_rbio() local
1961 sector = rbio_stripe_sector(rbio, stripe, sectornr); in recover_rbio()
1962 ret = rbio_add_io_sector(rbio, &bio_list, sector, stripe, in recover_rbio()
2151 struct sector_ptr *sector; in rmw_read_wait_recover() local
2155 sector = rbio_stripe_sector(rbio, stripe, sectornr); in rmw_read_wait_recover()
2156 ret = rbio_add_io_sector(rbio, &bio_list, sector, in rmw_read_wait_recover()
2204 * To determine if we need to read any sector from the disk.
2212 struct sector_ptr *sector = &rbio->stripe_sectors[i]; in need_read_stripe_sectors() local
2215 * We have a sector which doesn't have page nor uptodate, in need_read_stripe_sectors()
2219 if (!sector->page || !sector->uptodate) in need_read_stripe_sectors()
2240 * Either full stripe write, or we have every data sector already in rmw_rbio()
2465 struct sector_ptr *sector; in finish_parity_scrub() local
2470 sector = sector_in_rbio(rbio, stripe, sectornr, 0); in finish_parity_scrub()
2471 pointers[stripe] = kmap_local_page(sector->page) + in finish_parity_scrub()
2472 sector->pgoff; in finish_parity_scrub()
2486 sector = rbio_stripe_sector(rbio, rbio->scrubp, sectornr); in finish_parity_scrub()
2487 parity = kmap_local_page(sector->page) + sector->pgoff; in finish_parity_scrub()
2514 struct sector_ptr *sector; in finish_parity_scrub() local
2516 sector = rbio_stripe_sector(rbio, rbio->scrubp, sectornr); in finish_parity_scrub()
2517 ret = rbio_add_io_sector(rbio, &bio_list, sector, rbio->scrubp, in finish_parity_scrub()
2532 struct sector_ptr *sector; in finish_parity_scrub() local
2534 sector = rbio_stripe_sector(rbio, rbio->scrubp, sectornr); in finish_parity_scrub()
2535 ret = rbio_add_io_sector(rbio, &bio_list, sector, in finish_parity_scrub()
2566 * @pointers array stores the pointer for each sector. in recover_scrub_rbio()
2653 struct sector_ptr *sector; in scrub_assemble_read_bios() local
2661 * read them from the disk. If sector_in_rbio() finds a sector in scrub_assemble_read_bios()
2664 sector = sector_in_rbio(rbio, stripe, sectornr, 1); in scrub_assemble_read_bios()
2665 if (sector) in scrub_assemble_read_bios()
2668 sector = rbio_stripe_sector(rbio, stripe, sectornr); in scrub_assemble_read_bios()
2670 * The bio cache may have handed us an uptodate sector. If so, in scrub_assemble_read_bios()
2673 if (sector->uptodate) in scrub_assemble_read_bios()
2676 ret = rbio_add_io_sector(rbio, &bio_list, sector, stripe, in scrub_assemble_read_bios()
2709 * We have every sector properly prepared. Can finish the scrub in scrub_rbio()