Lines Matching refs:spage

229 static void scrub_page_get(struct scrub_page *spage);
230 static void scrub_page_put(struct scrub_page *spage);
234 struct scrub_page *spage);
248 struct scrub_page *spage);
1492 struct scrub_page *spage) in scrub_check_fsid() argument
1494 struct btrfs_fs_devices *fs_devices = spage->dev->fs_devices; in scrub_check_fsid()
1603 struct scrub_page *spage = sblock->pagev[page_num]; in scrub_write_page_to_dev_replace() local
1605 BUG_ON(spage->page == NULL); in scrub_write_page_to_dev_replace()
1606 if (spage->io_error) { in scrub_write_page_to_dev_replace()
1607 void *mapped_buffer = kmap_atomic(spage->page); in scrub_write_page_to_dev_replace()
1610 flush_dcache_page(spage->page); in scrub_write_page_to_dev_replace()
1613 return scrub_add_page_to_wr_bio(sblock->sctx, spage); in scrub_write_page_to_dev_replace()
1617 struct scrub_page *spage) in scrub_add_page_to_wr_bio() argument
1638 sbio->physical = spage->physical_for_dev_replace; in scrub_add_page_to_wr_bio()
1639 sbio->logical = spage->logical; in scrub_add_page_to_wr_bio()
1654 spage->physical_for_dev_replace || in scrub_add_page_to_wr_bio()
1656 spage->logical) { in scrub_add_page_to_wr_bio()
1661 ret = bio_add_page(sbio->bio, spage->page, PAGE_SIZE, 0); in scrub_add_page_to_wr_bio()
1673 sbio->pagev[sbio->page_count] = spage; in scrub_add_page_to_wr_bio()
1674 scrub_page_get(spage); in scrub_add_page_to_wr_bio()
1726 struct scrub_page *spage = sbio->pagev[i]; in scrub_wr_bio_end_io_worker() local
1728 spage->io_error = 1; in scrub_wr_bio_end_io_worker()
1983 static void scrub_page_get(struct scrub_page *spage) in scrub_page_get() argument
1985 atomic_inc(&spage->refs); in scrub_page_get()
1988 static void scrub_page_put(struct scrub_page *spage) in scrub_page_put() argument
1990 if (atomic_dec_and_test(&spage->refs)) { in scrub_page_put()
1991 if (spage->page) in scrub_page_put()
1992 __free_page(spage->page); in scrub_page_put()
1993 kfree(spage); in scrub_page_put()
2011 struct scrub_page *spage) in scrub_add_page_to_rd_bio() argument
2013 struct scrub_block *sblock = spage->sblock; in scrub_add_page_to_rd_bio()
2038 sbio->physical = spage->physical; in scrub_add_page_to_rd_bio()
2039 sbio->logical = spage->logical; in scrub_add_page_to_rd_bio()
2040 sbio->dev = spage->dev; in scrub_add_page_to_rd_bio()
2054 spage->physical || in scrub_add_page_to_rd_bio()
2056 spage->logical || in scrub_add_page_to_rd_bio()
2057 sbio->dev != spage->dev) { in scrub_add_page_to_rd_bio()
2062 sbio->pagev[sbio->page_count] = spage; in scrub_add_page_to_rd_bio()
2063 ret = bio_add_page(sbio->bio, spage->page, PAGE_SIZE, 0); in scrub_add_page_to_rd_bio()
2178 struct scrub_page *spage = sblock->pagev[i]; in scrub_missing_raid56_pages() local
2180 raid56_add_scrub_pages(rbio, spage->page, spage->logical); in scrub_missing_raid56_pages()
2223 struct scrub_page *spage; in scrub_pages() local
2226 spage = kzalloc(sizeof(*spage), GFP_KERNEL); in scrub_pages()
2227 if (!spage) { in scrub_pages()
2236 scrub_page_get(spage); in scrub_pages()
2237 sblock->pagev[index] = spage; in scrub_pages()
2238 spage->sblock = sblock; in scrub_pages()
2239 spage->dev = dev; in scrub_pages()
2240 spage->flags = flags; in scrub_pages()
2241 spage->generation = gen; in scrub_pages()
2242 spage->logical = logical; in scrub_pages()
2243 spage->physical = physical; in scrub_pages()
2244 spage->physical_for_dev_replace = physical_for_dev_replace; in scrub_pages()
2245 spage->mirror_num = mirror_num; in scrub_pages()
2247 spage->have_csum = 1; in scrub_pages()
2248 memcpy(spage->csum, csum, sctx->csum_size); in scrub_pages()
2250 spage->have_csum = 0; in scrub_pages()
2253 spage->page = alloc_page(GFP_KERNEL); in scrub_pages()
2254 if (!spage->page) in scrub_pages()
2271 struct scrub_page *spage = sblock->pagev[index]; in scrub_pages() local
2274 ret = scrub_add_page_to_rd_bio(sctx, spage); in scrub_pages()
2310 struct scrub_page *spage = sbio->pagev[i]; in scrub_bio_end_io_worker() local
2312 spage->io_error = 1; in scrub_bio_end_io_worker()
2313 spage->sblock->no_io_error_seen = 0; in scrub_bio_end_io_worker()
2319 struct scrub_page *spage = sbio->pagev[i]; in scrub_bio_end_io_worker() local
2320 struct scrub_block *sblock = spage->sblock; in scrub_bio_end_io_worker()
2530 struct scrub_page *spage; in scrub_pages_for_parity() local
2533 spage = kzalloc(sizeof(*spage), GFP_KERNEL); in scrub_pages_for_parity()
2534 if (!spage) { in scrub_pages_for_parity()
2544 scrub_page_get(spage); in scrub_pages_for_parity()
2545 sblock->pagev[index] = spage; in scrub_pages_for_parity()
2547 scrub_page_get(spage); in scrub_pages_for_parity()
2548 list_add_tail(&spage->list, &sparity->spages); in scrub_pages_for_parity()
2549 spage->sblock = sblock; in scrub_pages_for_parity()
2550 spage->dev = dev; in scrub_pages_for_parity()
2551 spage->flags = flags; in scrub_pages_for_parity()
2552 spage->generation = gen; in scrub_pages_for_parity()
2553 spage->logical = logical; in scrub_pages_for_parity()
2554 spage->physical = physical; in scrub_pages_for_parity()
2555 spage->mirror_num = mirror_num; in scrub_pages_for_parity()
2557 spage->have_csum = 1; in scrub_pages_for_parity()
2558 memcpy(spage->csum, csum, sctx->csum_size); in scrub_pages_for_parity()
2560 spage->have_csum = 0; in scrub_pages_for_parity()
2563 spage->page = alloc_page(GFP_KERNEL); in scrub_pages_for_parity()
2564 if (!spage->page) in scrub_pages_for_parity()
2573 struct scrub_page *spage = sblock->pagev[index]; in scrub_pages_for_parity() local
2576 ret = scrub_add_page_to_rd_bio(sctx, spage); in scrub_pages_for_parity()