Lines Matching refs:spage
232 static void scrub_page_get(struct scrub_page *spage);
233 static void scrub_page_put(struct scrub_page *spage);
237 struct scrub_page *spage);
251 struct scrub_page *spage);
1507 struct scrub_page *spage)
1509 struct btrfs_fs_devices *fs_devices = spage->dev->fs_devices;
1616 struct scrub_page *spage = sblock->pagev[page_num];
1618 BUG_ON(spage->page == NULL);
1619 if (spage->io_error)
1620 clear_page(page_address(spage->page));
1622 return scrub_add_page_to_wr_bio(sblock->sctx, spage);
1626 struct scrub_page *spage)
1647 sbio->physical = spage->physical_for_dev_replace;
1648 sbio->logical = spage->logical;
1663 spage->physical_for_dev_replace ||
1665 spage->logical) {
1670 ret = bio_add_page(sbio->bio, spage->page, PAGE_SIZE, 0);
1682 sbio->pagev[sbio->page_count] = spage;
1683 scrub_page_get(spage);
1734 struct scrub_page *spage = sbio->pagev[i];
1736 spage->io_error = 1;
1789 struct scrub_page *spage;
1793 spage = sblock->pagev[0];
1794 if (!spage->have_csum)
1797 kaddr = page_address(spage->page);
1803 if (memcmp(csum, spage->csum, sctx->csum_size))
1819 struct scrub_page *spage;
1823 spage = sblock->pagev[0];
1824 kaddr = page_address(spage->page);
1833 if (spage->logical != btrfs_stack_header_bytenr(h))
1836 if (spage->generation != btrfs_stack_header_generation(h)) {
1841 if (!scrub_check_fsid(h->fsid, spage))
1872 struct scrub_page *spage;
1878 spage = sblock->pagev[0];
1879 kaddr = page_address(spage->page);
1882 if (spage->logical != btrfs_super_bytenr(s))
1885 if (spage->generation != btrfs_super_generation(s))
1888 if (!scrub_check_fsid(s->fsid, spage))
1909 btrfs_dev_stat_inc_and_print(spage->dev,
1912 btrfs_dev_stat_inc_and_print(spage->dev,
1938 static void scrub_page_get(struct scrub_page *spage)
1940 atomic_inc(&spage->refs);
1943 static void scrub_page_put(struct scrub_page *spage)
1945 if (atomic_dec_and_test(&spage->refs)) {
1946 if (spage->page)
1947 __free_page(spage->page);
1948 kfree(spage);
1966 struct scrub_page *spage)
1968 struct scrub_block *sblock = spage->sblock;
1993 sbio->physical = spage->physical;
1994 sbio->logical = spage->logical;
1995 sbio->dev = spage->dev;
2009 spage->physical ||
2011 spage->logical ||
2012 sbio->dev != spage->dev) {
2017 sbio->pagev[sbio->page_count] = spage;
2018 ret = bio_add_page(sbio->bio, spage->page, PAGE_SIZE, 0);
2132 struct scrub_page *spage = sblock->pagev[i];
2134 raid56_add_scrub_pages(rbio, spage->page, spage->logical);
2176 struct scrub_page *spage;
2179 spage = kzalloc(sizeof(*spage), GFP_KERNEL);
2180 if (!spage) {
2189 scrub_page_get(spage);
2190 sblock->pagev[index] = spage;
2191 spage->sblock = sblock;
2192 spage->dev = dev;
2193 spage->flags = flags;
2194 spage->generation = gen;
2195 spage->logical = logical;
2196 spage->physical = physical;
2197 spage->physical_for_dev_replace = physical_for_dev_replace;
2198 spage->mirror_num = mirror_num;
2200 spage->have_csum = 1;
2201 memcpy(spage->csum, csum, sctx->csum_size);
2203 spage->have_csum = 0;
2206 spage->page = alloc_page(GFP_KERNEL);
2207 if (!spage->page)
2224 struct scrub_page *spage = sblock->pagev[index];
2227 ret = scrub_add_page_to_rd_bio(sctx, spage);
2263 struct scrub_page *spage = sbio->pagev[i];
2265 spage->io_error = 1;
2266 spage->sblock->no_io_error_seen = 0;
2272 struct scrub_page *spage = sbio->pagev[i];
2273 struct scrub_block *sblock = spage->sblock;
2483 struct scrub_page *spage;
2486 spage = kzalloc(sizeof(*spage), GFP_KERNEL);
2487 if (!spage) {
2497 scrub_page_get(spage);
2498 sblock->pagev[index] = spage;
2500 scrub_page_get(spage);
2501 list_add_tail(&spage->list, &sparity->spages);
2502 spage->sblock = sblock;
2503 spage->dev = dev;
2504 spage->flags = flags;
2505 spage->generation = gen;
2506 spage->logical = logical;
2507 spage->physical = physical;
2508 spage->mirror_num = mirror_num;
2510 spage->have_csum = 1;
2511 memcpy(spage->csum, csum, sctx->csum_size);
2513 spage->have_csum = 0;
2516 spage->page = alloc_page(GFP_KERNEL);
2517 if (!spage->page)
2526 struct scrub_page *spage = sblock->pagev[index];
2529 ret = scrub_add_page_to_rd_bio(sctx, spage);