Lines Matching refs:w
105 static void dirty_init(struct keybuf_key *w) in dirty_init() argument
107 struct dirty_io *io = w->private; in dirty_init()
114 bio->bi_iter.bi_size = KEY_SIZE(&w->key) << 9; in dirty_init()
115 bio->bi_max_vecs = DIV_ROUND_UP(KEY_SIZE(&w->key), PAGE_SECTORS); in dirty_init()
116 bio->bi_private = w; in dirty_init()
130 struct keybuf_key *w = io->bio.bi_private; in write_dirty_finish() local
139 if (KEY_DIRTY(&w->key)) { in write_dirty_finish()
146 bkey_copy(keys.top, &w->key); in write_dirty_finish()
150 for (i = 0; i < KEY_PTRS(&w->key); i++) in write_dirty_finish()
151 atomic_inc(&PTR_BUCKET(dc->disk.c, &w->key, i)->pin); in write_dirty_finish()
153 ret = bch_btree_insert(dc->disk.c, &keys, NULL, &w->key); in write_dirty_finish()
156 trace_bcache_writeback_collision(&w->key); in write_dirty_finish()
163 bch_keybuf_del(&dc->writeback_keys, w); in write_dirty_finish()
171 struct keybuf_key *w = bio->bi_private; in dirty_endio() local
172 struct dirty_io *io = w->private; in dirty_endio()
175 SET_KEY_DIRTY(&w->key, false); in dirty_endio()
183 struct keybuf_key *w = io->bio.bi_private; in write_dirty() local
185 dirty_init(w); in write_dirty()
187 io->bio.bi_iter.bi_sector = KEY_START(&w->key); in write_dirty()
198 struct keybuf_key *w = bio->bi_private; in read_dirty_endio() local
199 struct dirty_io *io = w->private; in read_dirty_endio()
201 bch_count_io_errors(PTR_CACHE(io->dc->disk.c, &w->key, 0), in read_dirty_endio()
219 struct keybuf_key *w; in read_dirty() local
233 w = bch_keybuf_next(&dc->writeback_keys); in read_dirty()
234 if (!w) in read_dirty()
237 BUG_ON(ptr_stale(dc->disk.c, &w->key, 0)); in read_dirty()
239 if (KEY_START(&w->key) != dc->last_read || in read_dirty()
244 dc->last_read = KEY_OFFSET(&w->key); in read_dirty()
247 * DIV_ROUND_UP(KEY_SIZE(&w->key), PAGE_SECTORS), in read_dirty()
252 w->private = io; in read_dirty()
255 dirty_init(w); in read_dirty()
256 io->bio.bi_iter.bi_sector = PTR_OFFSET(&w->key, 0); in read_dirty()
258 &w->key, 0)->bdev; in read_dirty()
265 trace_bcache_writeback(&w->key); in read_dirty()
270 delay = writeback_delay(dc, KEY_SIZE(&w->key)); in read_dirty()
275 kfree(w->private); in read_dirty()
277 bch_keybuf_del(&dc->writeback_keys, w); in read_dirty()