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