Lines Matching refs:w

325 static void btree_complete_write(struct btree *b, struct btree_write *w)  in btree_complete_write()  argument
327 if (w->prio_blocked && in btree_complete_write()
328 !atomic_sub_return(w->prio_blocked, &b->c->prio_blocked)) in btree_complete_write()
331 if (w->journal) { in btree_complete_write()
332 atomic_dec_bug(w->journal); in btree_complete_write()
336 w->prio_blocked = 0; in btree_complete_write()
337 w->journal = NULL; in btree_complete_write()
350 struct btree_write *w = btree_prev_write(b); in __btree_node_write_done() local
354 btree_complete_write(b, w); in __btree_node_write_done()
508 static void btree_node_write_work(struct work_struct *w) in btree_node_write_work() argument
510 struct btree *b = container_of(to_delayed_work(w), struct btree, work); in btree_node_write_work()
521 struct btree_write *w = btree_current_write(b); in bch_btree_leaf_dirty() local
534 if (w->journal && in bch_btree_leaf_dirty()
535 journal_pin_cmp(b->c, w->journal, journal_ref)) { in bch_btree_leaf_dirty()
536 atomic_dec_bug(w->journal); in bch_btree_leaf_dirty()
537 w->journal = NULL; in bch_btree_leaf_dirty()
540 if (!w->journal) { in bch_btree_leaf_dirty()
541 w->journal = journal_ref; in bch_btree_leaf_dirty()
542 atomic_inc(w->journal); in bch_btree_leaf_dirty()
1678 struct keybuf_key *w, *n; in bch_btree_gc_finish() local
1686 rbtree_postorder_for_each_entry_safe(w, n, in bch_btree_gc_finish()
1688 for (j = 0; j < KEY_PTRS(&w->key); j++) in bch_btree_gc_finish()
1689 SET_GC_MARK(PTR_BUCKET(c, &w->key, j), in bch_btree_gc_finish()
2378 struct keybuf_key *w; in refill_keybuf_fn() local
2382 w = array_alloc(&buf->freelist); in refill_keybuf_fn()
2383 if (!w) { in refill_keybuf_fn()
2388 w->private = NULL; in refill_keybuf_fn()
2389 bkey_copy(&w->key, k); in refill_keybuf_fn()
2391 if (RB_INSERT(&buf->keys, w, node, keybuf_cmp)) in refill_keybuf_fn()
2392 array_free(&buf->freelist, w); in refill_keybuf_fn()
2431 struct keybuf_key *w; in bch_refill_keybuf() local
2432 w = RB_FIRST(&buf->keys, struct keybuf_key, node); in bch_refill_keybuf()
2433 buf->start = START_KEY(&w->key); in bch_refill_keybuf()
2435 w = RB_LAST(&buf->keys, struct keybuf_key, node); in bch_refill_keybuf()
2436 buf->end = w->key; in bch_refill_keybuf()
2445 static void __bch_keybuf_del(struct keybuf *buf, struct keybuf_key *w) in __bch_keybuf_del() argument
2447 rb_erase(&w->node, &buf->keys); in __bch_keybuf_del()
2448 array_free(&buf->freelist, w); in __bch_keybuf_del()
2451 void bch_keybuf_del(struct keybuf *buf, struct keybuf_key *w) in bch_keybuf_del() argument
2454 __bch_keybuf_del(buf, w); in bch_keybuf_del()
2462 struct keybuf_key *p, *w, s; in bch_keybuf_check_overlapping() local
2470 w = RB_GREATER(&buf->keys, s, node, keybuf_nonoverlapping_cmp); in bch_keybuf_check_overlapping()
2472 while (w && bkey_cmp(&START_KEY(&w->key), end) < 0) { in bch_keybuf_check_overlapping()
2473 p = w; in bch_keybuf_check_overlapping()
2474 w = RB_NEXT(w, node); in bch_keybuf_check_overlapping()
2488 struct keybuf_key *w; in bch_keybuf_next() local
2491 w = RB_FIRST(&buf->keys, struct keybuf_key, node); in bch_keybuf_next()
2493 while (w && w->private) in bch_keybuf_next()
2494 w = RB_NEXT(w, node); in bch_keybuf_next()
2496 if (w) in bch_keybuf_next()
2497 w->private = ERR_PTR(-EINTR); in bch_keybuf_next()
2500 return w; in bch_keybuf_next()