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);
1501 struct scrub_page *spage) in scrub_check_fsid() argument
1503 struct btrfs_fs_devices *fs_devices = spage->dev->fs_devices; in scrub_check_fsid()
1612 struct scrub_page *spage = sblock->pagev[page_num]; in scrub_write_page_to_dev_replace() local
1614 BUG_ON(spage->page == NULL); in scrub_write_page_to_dev_replace()
1615 if (spage->io_error) { in scrub_write_page_to_dev_replace()
1616 void *mapped_buffer = kmap_atomic(spage->page); in scrub_write_page_to_dev_replace()
1619 flush_dcache_page(spage->page); in scrub_write_page_to_dev_replace()
1622 return scrub_add_page_to_wr_bio(sblock->sctx, spage); in scrub_write_page_to_dev_replace()
1626 struct scrub_page *spage) in scrub_add_page_to_wr_bio() argument
1658 sbio->physical = spage->physical_for_dev_replace; in scrub_add_page_to_wr_bio()
1659 sbio->logical = spage->logical; in scrub_add_page_to_wr_bio()
1674 spage->physical_for_dev_replace || in scrub_add_page_to_wr_bio()
1676 spage->logical) { in scrub_add_page_to_wr_bio()
1681 ret = bio_add_page(sbio->bio, spage->page, PAGE_SIZE, 0); in scrub_add_page_to_wr_bio()
1693 sbio->pagev[sbio->page_count] = spage; in scrub_add_page_to_wr_bio()
1694 scrub_page_get(spage); in scrub_add_page_to_wr_bio()
1746 struct scrub_page *spage = sbio->pagev[i]; in scrub_wr_bio_end_io_worker() local
1748 spage->io_error = 1; in scrub_wr_bio_end_io_worker()
2003 static void scrub_page_get(struct scrub_page *spage) in scrub_page_get() argument
2005 atomic_inc(&spage->refs); in scrub_page_get()
2008 static void scrub_page_put(struct scrub_page *spage) in scrub_page_put() argument
2010 if (atomic_dec_and_test(&spage->refs)) { in scrub_page_put()
2011 if (spage->page) in scrub_page_put()
2012 __free_page(spage->page); in scrub_page_put()
2013 kfree(spage); in scrub_page_put()
2031 struct scrub_page *spage) in scrub_add_page_to_rd_bio() argument
2033 struct scrub_block *sblock = spage->sblock; in scrub_add_page_to_rd_bio()
2058 sbio->physical = spage->physical; in scrub_add_page_to_rd_bio()
2059 sbio->logical = spage->logical; in scrub_add_page_to_rd_bio()
2060 sbio->dev = spage->dev; in scrub_add_page_to_rd_bio()
2074 spage->physical || in scrub_add_page_to_rd_bio()
2076 spage->logical || in scrub_add_page_to_rd_bio()
2077 sbio->dev != spage->dev) { in scrub_add_page_to_rd_bio()
2082 sbio->pagev[sbio->page_count] = spage; in scrub_add_page_to_rd_bio()
2083 ret = bio_add_page(sbio->bio, spage->page, PAGE_SIZE, 0); in scrub_add_page_to_rd_bio()
2197 struct scrub_page *spage = sblock->pagev[i]; in scrub_missing_raid56_pages() local
2199 raid56_add_scrub_pages(rbio, spage->page, spage->logical); in scrub_missing_raid56_pages()
2242 struct scrub_page *spage; in scrub_pages() local
2245 spage = kzalloc(sizeof(*spage), GFP_KERNEL); in scrub_pages()
2246 if (!spage) { in scrub_pages()
2255 scrub_page_get(spage); in scrub_pages()
2256 sblock->pagev[index] = spage; in scrub_pages()
2257 spage->sblock = sblock; in scrub_pages()
2258 spage->dev = dev; in scrub_pages()
2259 spage->flags = flags; in scrub_pages()
2260 spage->generation = gen; in scrub_pages()
2261 spage->logical = logical; in scrub_pages()
2262 spage->physical = physical; in scrub_pages()
2263 spage->physical_for_dev_replace = physical_for_dev_replace; in scrub_pages()
2264 spage->mirror_num = mirror_num; in scrub_pages()
2266 spage->have_csum = 1; in scrub_pages()
2267 memcpy(spage->csum, csum, sctx->csum_size); in scrub_pages()
2269 spage->have_csum = 0; in scrub_pages()
2272 spage->page = alloc_page(GFP_KERNEL); in scrub_pages()
2273 if (!spage->page) in scrub_pages()
2290 struct scrub_page *spage = sblock->pagev[index]; in scrub_pages() local
2293 ret = scrub_add_page_to_rd_bio(sctx, spage); in scrub_pages()
2329 struct scrub_page *spage = sbio->pagev[i]; in scrub_bio_end_io_worker() local
2331 spage->io_error = 1; in scrub_bio_end_io_worker()
2332 spage->sblock->no_io_error_seen = 0; in scrub_bio_end_io_worker()
2338 struct scrub_page *spage = sbio->pagev[i]; in scrub_bio_end_io_worker() local
2339 struct scrub_block *sblock = spage->sblock; in scrub_bio_end_io_worker()
2549 struct scrub_page *spage; in scrub_pages_for_parity() local
2552 spage = kzalloc(sizeof(*spage), GFP_KERNEL); in scrub_pages_for_parity()
2553 if (!spage) { in scrub_pages_for_parity()
2563 scrub_page_get(spage); in scrub_pages_for_parity()
2564 sblock->pagev[index] = spage; in scrub_pages_for_parity()
2566 scrub_page_get(spage); in scrub_pages_for_parity()
2567 list_add_tail(&spage->list, &sparity->spages); in scrub_pages_for_parity()
2568 spage->sblock = sblock; in scrub_pages_for_parity()
2569 spage->dev = dev; in scrub_pages_for_parity()
2570 spage->flags = flags; in scrub_pages_for_parity()
2571 spage->generation = gen; in scrub_pages_for_parity()
2572 spage->logical = logical; in scrub_pages_for_parity()
2573 spage->physical = physical; in scrub_pages_for_parity()
2574 spage->mirror_num = mirror_num; in scrub_pages_for_parity()
2576 spage->have_csum = 1; in scrub_pages_for_parity()
2577 memcpy(spage->csum, csum, sctx->csum_size); in scrub_pages_for_parity()
2579 spage->have_csum = 0; in scrub_pages_for_parity()
2582 spage->page = alloc_page(GFP_KERNEL); in scrub_pages_for_parity()
2583 if (!spage->page) in scrub_pages_for_parity()
2592 struct scrub_page *spage = sblock->pagev[index]; in scrub_pages_for_parity() local
2595 ret = scrub_add_page_to_rd_bio(sctx, spage); in scrub_pages_for_parity()