Lines Matching refs:wb
1298 struct writeback_struct *wb = container_of(bio, struct writeback_struct, bio); in writecache_writeback_endio() local
1299 struct dm_writecache *wc = wb->wc; in writecache_writeback_endio()
1305 list_add_tail(&wb->endio_entry, &wc->endio_list); in writecache_writeback_endio()
1326 struct writeback_struct *wb; in __writecache_endio_pmem() local
1331 wb = list_entry(list->next, struct writeback_struct, endio_entry); in __writecache_endio_pmem()
1332 list_del(&wb->endio_entry); in __writecache_endio_pmem()
1334 if (unlikely(wb->bio.bi_status != BLK_STS_OK)) in __writecache_endio_pmem()
1335 writecache_error(wc, blk_status_to_errno(wb->bio.bi_status), in __writecache_endio_pmem()
1336 "write error %d", wb->bio.bi_status); in __writecache_endio_pmem()
1339 e = wb->wc_list[i]; in __writecache_endio_pmem()
1354 } while (++i < wb->wc_list_n); in __writecache_endio_pmem()
1356 if (wb->wc_list != wb->wc_list_inline) in __writecache_endio_pmem()
1357 kfree(wb->wc_list); in __writecache_endio_pmem()
1358 bio_put(&wb->bio); in __writecache_endio_pmem()
1438 static bool wc_add_block(struct writeback_struct *wb, struct wc_entry *e, gfp_t gfp) in wc_add_block() argument
1440 struct dm_writecache *wc = wb->wc; in wc_add_block()
1445 return bio_add_page(&wb->bio, persistent_memory_page(address), in wc_add_block()
1471 struct writeback_struct *wb; in __writecache_writeback_pmem() local
1482 wb = container_of(bio, struct writeback_struct, bio); in __writecache_writeback_pmem()
1483 wb->wc = wc; in __writecache_writeback_pmem()
1484 wb->bio.bi_end_io = writecache_writeback_endio; in __writecache_writeback_pmem()
1485 bio_set_dev(&wb->bio, wc->dev->bdev); in __writecache_writeback_pmem()
1486 wb->bio.bi_iter.bi_sector = read_original_sector(wc, e); in __writecache_writeback_pmem()
1487 wb->page_offset = PAGE_SIZE; in __writecache_writeback_pmem()
1489 unlikely(!(wb->wc_list = kmalloc_array(max_pages, sizeof(struct wc_entry *), in __writecache_writeback_pmem()
1492 wb->wc_list = wb->wc_list_inline; in __writecache_writeback_pmem()
1496 BUG_ON(!wc_add_block(wb, e, GFP_NOIO)); in __writecache_writeback_pmem()
1498 wb->wc_list[0] = e; in __writecache_writeback_pmem()
1499 wb->wc_list_n = 1; in __writecache_writeback_pmem()
1501 while (wbl->size && wb->wc_list_n < max_pages) { in __writecache_writeback_pmem()
1506 if (!wc_add_block(wb, f, GFP_NOWAIT | __GFP_NOWARN)) in __writecache_writeback_pmem()
1510 wb->wc_list[wb->wc_list_n++] = f; in __writecache_writeback_pmem()
1513 bio_set_op_attrs(&wb->bio, REQ_OP_WRITE, WC_MODE_FUA(wc) * REQ_FUA); in __writecache_writeback_pmem()
1516 bio_endio(&wb->bio); in __writecache_writeback_pmem()
1518 submit_bio(&wb->bio); in __writecache_writeback_pmem()