Lines Matching full:sector

56  * A bvec like structure to present a sector inside a page.
231 /* Also update the sector->uptodate bits. */ in steal_rbio_page()
564 /* Return a sector from rbio->stripe_sectors, not from the bio list */
573 /* Grab a sector inside P stripe */
580 /* Grab a sector inside Q stripe, return NULL if not RAID6 */
870 * Get a sector pointer specified by its @stripe_nr and @sector_nr
874 * @sector_nr: Sector number inside the stripe,
885 struct sector_ptr *sector; in sector_in_rbio() local
895 sector = &rbio->bio_sectors[index]; in sector_in_rbio()
896 if (sector->page || bio_list_only) { in sector_in_rbio()
897 /* Don't return sector without a valid page pointer */ in sector_in_rbio()
898 if (!sector->page) in sector_in_rbio()
899 sector = NULL; in sector_in_rbio()
901 return sector; in sector_in_rbio()
1009 * Add a single sector @sector into our list of bios for IO.
1016 struct sector_ptr *sector, in rbio_add_io_sector() argument
1035 ASSERT(sector->page); in rbio_add_io_sector()
1055 ret = bio_add_page(last, sector->page, sectorsize, in rbio_add_io_sector()
1056 sector->pgoff); in rbio_add_io_sector()
1069 bio_add_page(bio, sector->page, sectorsize, sector->pgoff); in rbio_add_io_sector()
1105 struct sector_ptr *sector = &rbio->bio_sectors[index]; in index_one_bio() local
1107 sector->page = bvec.bv_page; in index_one_bio()
1108 sector->pgoff = bvec.bv_offset + bvec_offset; in index_one_bio()
1109 ASSERT(sector->pgoff < PAGE_SIZE); in index_one_bio()
1175 /* The total sector number inside the full stripe. */ in finish_rmw()
1178 /* Sector number inside a stripe. */ in finish_rmw()
1194 /* We should have at least one data sector. */ in finish_rmw()
1227 struct sector_ptr *sector; in finish_rmw() local
1229 /* First collect one sector from each data stripe */ in finish_rmw()
1231 sector = sector_in_rbio(rbio, stripe, sectornr, 0); in finish_rmw()
1232 pointers[stripe] = kmap_local_page(sector->page) + in finish_rmw()
1233 sector->pgoff; in finish_rmw()
1237 sector = rbio_pstripe_sector(rbio, sectornr); in finish_rmw()
1238 sector->uptodate = 1; in finish_rmw()
1239 pointers[stripe++] = kmap_local_page(sector->page) + sector->pgoff; in finish_rmw()
1246 sector = rbio_qstripe_sector(rbio, sectornr); in finish_rmw()
1247 sector->uptodate = 1; in finish_rmw()
1248 pointers[stripe++] = kmap_local_page(sector->page) + in finish_rmw()
1249 sector->pgoff; in finish_rmw()
1268 struct sector_ptr *sector; in finish_rmw() local
1278 sector = sector_in_rbio(rbio, stripe, sectornr, 1); in finish_rmw()
1279 if (!sector) in finish_rmw()
1282 sector = rbio_stripe_sector(rbio, stripe, sectornr); in finish_rmw()
1285 ret = rbio_add_io_sector(rbio, &bio_list, sector, stripe, in finish_rmw()
1296 struct sector_ptr *sector; in finish_rmw() local
1316 sector = sector_in_rbio(rbio, stripe, sectornr, 1); in finish_rmw()
1317 if (!sector) in finish_rmw()
1320 sector = rbio_stripe_sector(rbio, stripe, sectornr); in finish_rmw()
1323 ret = rbio_add_io_sector(rbio, &bio_list, sector, in finish_rmw()
1357 * so it looks up based on physical sector numbers.
1446 * stripe_pages[], thus we need to locate the sector.
1455 struct sector_ptr *sector = &rbio->stripe_sectors[i]; in find_stripe_sector() local
1457 if (sector->page == page && sector->pgoff == pgoff) in find_stripe_sector()
1458 return sector; in find_stripe_sector()
1476 struct sector_ptr *sector; in set_bio_pages_uptodate() local
1481 sector = find_stripe_sector(rbio, bvec->bv_page, pgoff); in set_bio_pages_uptodate()
1482 ASSERT(sector); in set_bio_pages_uptodate()
1483 if (sector) in set_bio_pages_uptodate()
1484 sector->uptodate = 1; in set_bio_pages_uptodate()
1555 struct sector_ptr *sector; in raid56_rmw_stripe() local
1564 sector = sector_in_rbio(rbio, stripe, sectornr, 1); in raid56_rmw_stripe()
1565 if (sector) in raid56_rmw_stripe()
1568 sector = rbio_stripe_sector(rbio, stripe, sectornr); in raid56_rmw_stripe()
1573 if (sector->uptodate) in raid56_rmw_stripe()
1576 ret = rbio_add_io_sector(rbio, &bio_list, sector, in raid56_rmw_stripe()
1870 * This array stores the pointer for each sector, thus it has the extra in __raid_recover_end_io()
1871 * pgoff value added from each sector in __raid_recover_end_io()
1902 struct sector_ptr *sector; in __raid_recover_end_io() local
1926 sector = sector_in_rbio(rbio, stripe, sectornr, 0); in __raid_recover_end_io()
1928 sector = rbio_stripe_sector(rbio, stripe, sectornr); in __raid_recover_end_io()
1930 ASSERT(sector->page); in __raid_recover_end_io()
1931 pointers[stripe] = kmap_local_page(sector->page) + in __raid_recover_end_io()
1932 sector->pgoff; in __raid_recover_end_io()
2014 sector = rbio_stripe_sector(rbio, faila, i); in __raid_recover_end_io()
2015 sector->uptodate = 1; in __raid_recover_end_io()
2018 sector = rbio_stripe_sector(rbio, failb, i); in __raid_recover_end_io()
2019 sector->uptodate = 1; in __raid_recover_end_io()
2118 * not trust any cached sector. in __raid56_parity_recover()
2128 struct sector_ptr *sector; in __raid56_parity_recover() local
2137 sector = rbio_stripe_sector(rbio, stripe, sectornr); in __raid56_parity_recover()
2138 ret = rbio_add_io_sector(rbio, &bio_list, sector, stripe, in __raid56_parity_recover()
2428 struct sector_ptr *sector; in finish_parity_scrub() local
2433 sector = sector_in_rbio(rbio, stripe, sectornr, 0); in finish_parity_scrub()
2434 pointers[stripe] = kmap_local_page(sector->page) + in finish_parity_scrub()
2435 sector->pgoff; in finish_parity_scrub()
2449 sector = rbio_stripe_sector(rbio, rbio->scrubp, sectornr); in finish_parity_scrub()
2450 parity = kmap_local_page(sector->page) + sector->pgoff; in finish_parity_scrub()
2478 struct sector_ptr *sector; in finish_parity_scrub() local
2480 sector = rbio_stripe_sector(rbio, rbio->scrubp, sectornr); in finish_parity_scrub()
2481 ret = rbio_add_io_sector(rbio, &bio_list, sector, rbio->scrubp, in finish_parity_scrub()
2491 struct sector_ptr *sector; in finish_parity_scrub() local
2493 sector = rbio_stripe_sector(rbio, rbio->scrubp, sectornr); in finish_parity_scrub()
2494 ret = rbio_add_io_sector(rbio, &bio_list, sector, in finish_parity_scrub()
2639 struct sector_ptr *sector; in raid56_parity_scrub_stripe() local
2647 * read them from the disk. If sector_in_rbio() finds a sector in raid56_parity_scrub_stripe()
2650 sector = sector_in_rbio(rbio, stripe, sectornr, 1); in raid56_parity_scrub_stripe()
2651 if (sector) in raid56_parity_scrub_stripe()
2654 sector = rbio_stripe_sector(rbio, stripe, sectornr); in raid56_parity_scrub_stripe()
2656 * The bio cache may have handed us an uptodate sector. If so, in raid56_parity_scrub_stripe()
2659 if (sector->uptodate) in raid56_parity_scrub_stripe()
2662 ret = rbio_add_io_sector(rbio, &bio_list, sector, stripe, in raid56_parity_scrub_stripe()