Lines Matching full:sector
137 * A bvec like structure to present a sector inside a page.
258 * Even if the sector is not covered by bio, if it is in cache_rbio_pages()
259 * a data sector it should still be uptodate as it is in cache_rbio_pages()
346 /* Also update the sector->uptodate bits. */ in steal_rbio_page()
361 * Thus if the first sector of the page belongs to data stripes, then in is_data_stripe_page()
680 /* Return a sector from rbio->stripe_sectors, not from the bio list */
689 /* Grab a sector inside P stripe */
696 /* Grab a sector inside Q stripe, return NULL if not RAID6 */
937 * Get a sector pointer specified by its @stripe_nr and @sector_nr.
941 * @sector_nr: Sector number inside the stripe,
952 struct sector_ptr *sector; in sector_in_rbio() local
964 sector = &rbio->bio_sectors[index]; in sector_in_rbio()
965 if (sector->page || bio_list_only) { in sector_in_rbio()
966 /* Don't return sector without a valid page pointer */ in sector_in_rbio()
967 if (!sector->page) in sector_in_rbio()
968 sector = NULL; in sector_in_rbio()
970 return sector; in sector_in_rbio()
1117 * Add a single sector @sector into our list of bios for IO.
1124 struct sector_ptr *sector, in rbio_add_io_sector() argument
1145 ASSERT(sector->page); in rbio_add_io_sector()
1176 ret = bio_add_page(last, sector->page, sectorsize, in rbio_add_io_sector()
1177 sector->pgoff); in rbio_add_io_sector()
1190 __bio_add_page(bio, sector->page, sectorsize, sector->pgoff); in rbio_add_io_sector()
1209 struct sector_ptr *sector = &rbio->bio_sectors[index]; in index_one_bio() local
1211 sector->page = bvec.bv_page; in index_one_bio()
1212 sector->pgoff = bvec.bv_offset + bvec_offset; in index_one_bio()
1213 ASSERT(sector->pgoff < PAGE_SIZE); in index_one_bio()
1297 struct sector_ptr *sector; in generate_pq_vertical() local
1301 /* First collect one sector from each data stripe */ in generate_pq_vertical()
1303 sector = sector_in_rbio(rbio, stripe, sectornr, 0); in generate_pq_vertical()
1304 pointers[stripe] = kmap_local_page(sector->page) + in generate_pq_vertical()
1305 sector->pgoff; in generate_pq_vertical()
1309 sector = rbio_pstripe_sector(rbio, sectornr); in generate_pq_vertical()
1310 sector->uptodate = 1; in generate_pq_vertical()
1311 pointers[stripe++] = kmap_local_page(sector->page) + sector->pgoff; in generate_pq_vertical()
1318 sector = rbio_qstripe_sector(rbio, sectornr); in generate_pq_vertical()
1319 sector->uptodate = 1; in generate_pq_vertical()
1320 pointers[stripe++] = kmap_local_page(sector->page) + in generate_pq_vertical()
1321 sector->pgoff; in generate_pq_vertical()
1338 /* The total sector number inside the full stripe. */ in rmw_assemble_write_bios()
1346 /* We should have at least one data sector. */ in rmw_assemble_write_bios()
1361 struct sector_ptr *sector; in rmw_assemble_write_bios() local
1371 sector = sector_in_rbio(rbio, stripe, sectornr, 1); in rmw_assemble_write_bios()
1372 if (!sector) in rmw_assemble_write_bios()
1375 sector = rbio_stripe_sector(rbio, stripe, sectornr); in rmw_assemble_write_bios()
1378 ret = rbio_add_io_sector(rbio, bio_list, sector, stripe, in rmw_assemble_write_bios()
1396 struct sector_ptr *sector; in rmw_assemble_write_bios() local
1421 sector = sector_in_rbio(rbio, stripe, sectornr, 1); in rmw_assemble_write_bios()
1422 if (!sector) in rmw_assemble_write_bios()
1425 sector = rbio_stripe_sector(rbio, stripe, sectornr); in rmw_assemble_write_bios()
1428 ret = rbio_add_io_sector(rbio, bio_list, sector, in rmw_assemble_write_bios()
1477 * stripe_pages[], thus we need to locate the sector.
1486 struct sector_ptr *sector = &rbio->stripe_sectors[i]; in find_stripe_sector() local
1488 if (sector->page == page && sector->pgoff == pgoff) in find_stripe_sector()
1489 return sector; in find_stripe_sector()
1507 struct sector_ptr *sector; in set_bio_pages_uptodate() local
1512 sector = find_stripe_sector(rbio, bvec->bv_page, pgoff); in set_bio_pages_uptodate()
1513 ASSERT(sector); in set_bio_pages_uptodate()
1514 if (sector) in set_bio_pages_uptodate()
1515 sector->uptodate = 1; in set_bio_pages_uptodate()
1526 struct sector_ptr *sector; in get_bio_sector_nr() local
1528 sector = &rbio->stripe_sectors[i]; in get_bio_sector_nr()
1529 if (sector->page == bv->bv_page && sector->pgoff == bv->bv_offset) in get_bio_sector_nr()
1531 sector = &rbio->bio_sectors[i]; in get_bio_sector_nr()
1532 if (sector->page == bv->bv_page && sector->pgoff == bv->bv_offset) in get_bio_sector_nr()
1588 /* No csum for this sector, skip to the next sector. */ in verify_bio_data_sectors()
1791 struct sector_ptr *sector; in verify_one_sector() local
1807 sector = sector_in_rbio(rbio, stripe_nr, sector_nr, 0); in verify_one_sector()
1809 sector = rbio_stripe_sector(rbio, stripe_nr, sector_nr); in verify_one_sector()
1812 ASSERT(sector->page); in verify_one_sector()
1817 ret = btrfs_check_sector_csum(fs_info, sector->page, sector->pgoff, in verify_one_sector()
1831 struct sector_ptr *sector; in recover_vertical() local
1871 sector = sector_in_rbio(rbio, stripe_nr, sector_nr, 0); in recover_vertical()
1873 sector = rbio_stripe_sector(rbio, stripe_nr, sector_nr); in recover_vertical()
1875 ASSERT(sector->page); in recover_vertical()
1876 pointers[stripe_nr] = kmap_local_page(sector->page) + in recover_vertical()
1877 sector->pgoff; in recover_vertical()
1957 * If possible, also check if the repaired sector matches its data in recover_vertical()
1965 sector = rbio_stripe_sector(rbio, faila, sector_nr); in recover_vertical()
1966 sector->uptodate = 1; in recover_vertical()
1973 sector = rbio_stripe_sector(rbio, failb, sector_nr); in recover_vertical()
1974 sector->uptodate = 1; in recover_vertical()
1991 * @pointers array stores the pointer for each sector. in recover_sectors()
2044 * not trust any cached sector. in recover_rbio()
2054 struct sector_ptr *sector; in recover_rbio() local
2071 sector = rbio_stripe_sector(rbio, stripe, sectornr); in recover_rbio()
2072 ret = rbio_add_io_sector(rbio, &bio_list, sector, stripe, in recover_rbio()
2261 struct sector_ptr *sector; in rmw_read_wait_recover() local
2265 sector = rbio_stripe_sector(rbio, stripe, sectornr); in rmw_read_wait_recover()
2266 ret = rbio_add_io_sector(rbio, &bio_list, sector, in rmw_read_wait_recover()
2314 * To determine if we need to read any sector from the disk.
2322 struct sector_ptr *sector = &rbio->stripe_sectors[i]; in need_read_stripe_sectors() local
2325 * We have a sector which doesn't have page nor uptodate, in need_read_stripe_sectors()
2329 if (!sector->page || !sector->uptodate) in need_read_stripe_sectors()
2350 * Either full stripe write, or we have every data sector already in rmw_rbio()
2575 struct sector_ptr *sector; in finish_parity_scrub() local
2580 sector = sector_in_rbio(rbio, stripe, sectornr, 0); in finish_parity_scrub()
2581 pointers[stripe] = kmap_local_page(sector->page) + in finish_parity_scrub()
2582 sector->pgoff; in finish_parity_scrub()
2597 sector = rbio_stripe_sector(rbio, rbio->scrubp, sectornr); in finish_parity_scrub()
2598 parity = kmap_local_page(sector->page) + sector->pgoff; in finish_parity_scrub()
2625 struct sector_ptr *sector; in finish_parity_scrub() local
2627 sector = rbio_stripe_sector(rbio, rbio->scrubp, sectornr); in finish_parity_scrub()
2628 ret = rbio_add_io_sector(rbio, &bio_list, sector, rbio->scrubp, in finish_parity_scrub()
2643 struct sector_ptr *sector; in finish_parity_scrub() local
2645 sector = rbio_stripe_sector(rbio, rbio->scrubp, sectornr); in finish_parity_scrub()
2646 ret = rbio_add_io_sector(rbio, &bio_list, sector, in finish_parity_scrub()
2677 * @pointers array stores the pointer for each sector. in recover_scrub_rbio()
2764 struct sector_ptr *sector; in scrub_assemble_read_bios() local
2772 * read them from the disk. If sector_in_rbio() finds a sector in scrub_assemble_read_bios()
2775 sector = sector_in_rbio(rbio, stripe, sectornr, 1); in scrub_assemble_read_bios()
2776 if (sector) in scrub_assemble_read_bios()
2779 sector = rbio_stripe_sector(rbio, stripe, sectornr); in scrub_assemble_read_bios()
2781 * The bio cache may have handed us an uptodate sector. If so, in scrub_assemble_read_bios()
2784 if (sector->uptodate) in scrub_assemble_read_bios()
2787 ret = rbio_add_io_sector(rbio, &bio_list, sector, stripe, in scrub_assemble_read_bios()
2820 * We have every sector properly prepared. Can finish the scrub in scrub_rbio()