Lines Matching refs:spage

271 static void scrub_page_get(struct scrub_page *spage);
272 static void scrub_page_put(struct scrub_page *spage);
276 struct scrub_page *spage);
296 struct scrub_page *spage);
1532 struct scrub_page *spage) in scrub_check_fsid() argument
1534 struct btrfs_fs_devices *fs_devices = spage->dev->fs_devices; in scrub_check_fsid()
1690 struct scrub_page *spage = sblock->pagev[page_num]; in scrub_write_page_to_dev_replace() local
1692 BUG_ON(spage->page == NULL); in scrub_write_page_to_dev_replace()
1693 if (spage->io_error) { in scrub_write_page_to_dev_replace()
1694 void *mapped_buffer = kmap_atomic(spage->page); in scrub_write_page_to_dev_replace()
1697 flush_dcache_page(spage->page); in scrub_write_page_to_dev_replace()
1700 return scrub_add_page_to_wr_bio(sblock->sctx, spage); in scrub_write_page_to_dev_replace()
1704 struct scrub_page *spage) in scrub_add_page_to_wr_bio() argument
1726 sbio->physical = spage->physical_for_dev_replace; in scrub_add_page_to_wr_bio()
1727 sbio->logical = spage->logical; in scrub_add_page_to_wr_bio()
1745 spage->physical_for_dev_replace || in scrub_add_page_to_wr_bio()
1747 spage->logical) { in scrub_add_page_to_wr_bio()
1752 ret = bio_add_page(sbio->bio, spage->page, PAGE_SIZE, 0); in scrub_add_page_to_wr_bio()
1764 sbio->pagev[sbio->page_count] = spage; in scrub_add_page_to_wr_bio()
1765 scrub_page_get(spage); in scrub_add_page_to_wr_bio()
1818 struct scrub_page *spage = sbio->pagev[i]; in scrub_wr_bio_end_io_worker() local
1820 spage->io_error = 1; in scrub_wr_bio_end_io_worker()
2066 static void scrub_page_get(struct scrub_page *spage) in scrub_page_get() argument
2068 atomic_inc(&spage->refs); in scrub_page_get()
2071 static void scrub_page_put(struct scrub_page *spage) in scrub_page_put() argument
2073 if (atomic_dec_and_test(&spage->refs)) { in scrub_page_put()
2074 if (spage->page) in scrub_page_put()
2075 __free_page(spage->page); in scrub_page_put()
2076 kfree(spage); in scrub_page_put()
2108 struct scrub_page *spage) in scrub_add_page_to_rd_bio() argument
2110 struct scrub_block *sblock = spage->sblock; in scrub_add_page_to_rd_bio()
2135 sbio->physical = spage->physical; in scrub_add_page_to_rd_bio()
2136 sbio->logical = spage->logical; in scrub_add_page_to_rd_bio()
2137 sbio->dev = spage->dev; in scrub_add_page_to_rd_bio()
2152 spage->physical || in scrub_add_page_to_rd_bio()
2154 spage->logical || in scrub_add_page_to_rd_bio()
2155 sbio->dev != spage->dev) { in scrub_add_page_to_rd_bio()
2160 sbio->pagev[sbio->page_count] = spage; in scrub_add_page_to_rd_bio()
2161 ret = bio_add_page(sbio->bio, spage->page, PAGE_SIZE, 0); in scrub_add_page_to_rd_bio()
2204 struct scrub_page *spage; in scrub_pages() local
2207 spage = kzalloc(sizeof(*spage), GFP_NOFS); in scrub_pages()
2208 if (!spage) { in scrub_pages()
2217 scrub_page_get(spage); in scrub_pages()
2218 sblock->pagev[index] = spage; in scrub_pages()
2219 spage->sblock = sblock; in scrub_pages()
2220 spage->dev = dev; in scrub_pages()
2221 spage->flags = flags; in scrub_pages()
2222 spage->generation = gen; in scrub_pages()
2223 spage->logical = logical; in scrub_pages()
2224 spage->physical = physical; in scrub_pages()
2225 spage->physical_for_dev_replace = physical_for_dev_replace; in scrub_pages()
2226 spage->mirror_num = mirror_num; in scrub_pages()
2228 spage->have_csum = 1; in scrub_pages()
2229 memcpy(spage->csum, csum, sctx->csum_size); in scrub_pages()
2231 spage->have_csum = 0; in scrub_pages()
2234 spage->page = alloc_page(GFP_NOFS); in scrub_pages()
2235 if (!spage->page) in scrub_pages()
2245 struct scrub_page *spage = sblock->pagev[index]; in scrub_pages() local
2248 ret = scrub_add_page_to_rd_bio(sctx, spage); in scrub_pages()
2283 struct scrub_page *spage = sbio->pagev[i]; in scrub_bio_end_io_worker() local
2285 spage->io_error = 1; in scrub_bio_end_io_worker()
2286 spage->sblock->no_io_error_seen = 0; in scrub_bio_end_io_worker()
2292 struct scrub_page *spage = sbio->pagev[i]; in scrub_bio_end_io_worker() local
2293 struct scrub_block *sblock = spage->sblock; in scrub_bio_end_io_worker()
2499 struct scrub_page *spage; in scrub_pages_for_parity() local
2502 spage = kzalloc(sizeof(*spage), GFP_NOFS); in scrub_pages_for_parity()
2503 if (!spage) { in scrub_pages_for_parity()
2513 scrub_page_get(spage); in scrub_pages_for_parity()
2514 sblock->pagev[index] = spage; in scrub_pages_for_parity()
2516 scrub_page_get(spage); in scrub_pages_for_parity()
2517 list_add_tail(&spage->list, &sparity->spages); in scrub_pages_for_parity()
2518 spage->sblock = sblock; in scrub_pages_for_parity()
2519 spage->dev = dev; in scrub_pages_for_parity()
2520 spage->flags = flags; in scrub_pages_for_parity()
2521 spage->generation = gen; in scrub_pages_for_parity()
2522 spage->logical = logical; in scrub_pages_for_parity()
2523 spage->physical = physical; in scrub_pages_for_parity()
2524 spage->mirror_num = mirror_num; in scrub_pages_for_parity()
2526 spage->have_csum = 1; in scrub_pages_for_parity()
2527 memcpy(spage->csum, csum, sctx->csum_size); in scrub_pages_for_parity()
2529 spage->have_csum = 0; in scrub_pages_for_parity()
2532 spage->page = alloc_page(GFP_NOFS); in scrub_pages_for_parity()
2533 if (!spage->page) in scrub_pages_for_parity()
2542 struct scrub_page *spage = sblock->pagev[index]; in scrub_pages_for_parity() local
2545 ret = scrub_add_page_to_rd_bio(sctx, spage); in scrub_pages_for_parity()
2684 struct scrub_page *spage; in scrub_parity_check_and_repair() local
2715 list_for_each_entry(spage, &sparity->spages, list) in scrub_parity_check_and_repair()
2716 raid56_parity_add_scrub_pages(rbio, spage->page, in scrub_parity_check_and_repair()
2717 spage->logical); in scrub_parity_check_and_repair()