Lines Matching refs:j

42 	struct jset *j, *data = ca->set->journal.w[0].data;  in journal_read_bucket()  local
75 j = data; in journal_read_bucket()
78 size_t blocks, bytes = set_bytes(j); in journal_read_bucket()
80 if (j->magic != jset_magic(&ca->sb)) { in journal_read_bucket()
95 if (j->csum != csum_set(j)) { in journal_read_bucket()
101 blocks = set_blocks(j, block_bytes(ca->set)); in journal_read_bucket()
106 if (i->j.seq >= j->last_seq) in journal_read_bucket()
113 if (j->seq == i->j.seq) in journal_read_bucket()
116 if (j->seq < i->j.last_seq) in journal_read_bucket()
119 if (j->seq > i->j.seq) { in journal_read_bucket()
127 i = kmalloc(offsetof(struct journal_replay, j) + in journal_read_bucket()
131 memcpy(&i->j, j, bytes); in journal_read_bucket()
135 ja->seq[bucket_index] = j->seq; in journal_read_bucket()
139 j = ((void *) j) + blocks * block_bytes(ca); in journal_read_bucket()
214 list)->j.seq; in bch_journal_read()
220 list)->j.seq) in bch_journal_read()
268 list)->j.seq; in bch_journal_read()
279 struct journal *j = &c->journal; in bch_journal_mark() local
280 uint64_t last = j->seq; in bch_journal_mark()
290 BUG_ON(last < i->j.seq); in bch_journal_mark()
293 while (last-- != i->j.seq) in bch_journal_mark()
294 if (fifo_free(&j->pin) > 1) { in bch_journal_mark()
295 fifo_push_front(&j->pin, p); in bch_journal_mark()
296 atomic_set(&fifo_front(&j->pin), 0); in bch_journal_mark()
299 if (fifo_free(&j->pin) > 1) { in bch_journal_mark()
300 fifo_push_front(&j->pin, p); in bch_journal_mark()
301 i->pin = &fifo_front(&j->pin); in bch_journal_mark()
305 for (k = i->j.start; in bch_journal_mark()
306 k < bset_bkey_last(&i->j); in bch_journal_mark()
309 unsigned int j; in bch_journal_mark() local
311 for (j = 0; j < KEY_PTRS(k); j++) in bch_journal_mark()
312 if (ptr_available(c, k, j)) in bch_journal_mark()
313 atomic_inc(&PTR_BUCKET(c, k, j)->pin); in bch_journal_mark()
327 uint64_t start = i->j.last_seq, end = i->j.seq, n = start; in bch_journal_replay()
333 cache_set_err_on(n != i->j.seq, s, in bch_journal_replay()
335 n, i->j.seq - 1, start, end); in bch_journal_replay()
337 for (k = i->j.start; in bch_journal_replay()
338 k < bset_bkey_last(&i->j); in bch_journal_replay()
356 n = i->j.seq + 1; in bch_journal_replay()
429 #define last_seq(j) ((j)->seq - fifo_used(&(j)->pin) + 1) argument
553 void bch_journal_next(struct journal *j) in bch_journal_next() argument
557 j->cur = (j->cur == j->w) in bch_journal_next()
558 ? &j->w[1] in bch_journal_next()
559 : &j->w[0]; in bch_journal_next()
565 BUG_ON(!fifo_push(&j->pin, p)); in bch_journal_next()
566 atomic_set(&fifo_back(&j->pin), 1); in bch_journal_next()
568 j->cur->data->seq = ++j->seq; in bch_journal_next()
569 j->cur->dirty = false; in bch_journal_next()
570 j->cur->need_write = false; in bch_journal_next()
571 j->cur->data->keys = 0; in bch_journal_next()
573 if (fifo_full(&j->pin)) in bch_journal_next()
574 pr_debug("journal_pin full (%zu)", fifo_used(&j->pin)); in bch_journal_next()
589 struct journal *j = container_of(cl, struct journal, io); in journal_write_done() local
590 struct journal_write *w = (j->cur == j->w) in journal_write_done()
591 ? &j->w[1] in journal_write_done()
592 : &j->w[0]; in journal_write_done()
839 struct journal *j = &c->journal; in bch_journal_alloc() local
841 spin_lock_init(&j->lock); in bch_journal_alloc()
842 INIT_DELAYED_WORK(&j->work, journal_write_work); in bch_journal_alloc()
846 j->w[0].c = c; in bch_journal_alloc()
847 j->w[1].c = c; in bch_journal_alloc()
850 !(init_fifo(&j->pin, JOURNAL_PIN, GFP_KERNEL)) || in bch_journal_alloc()
851 !(j->w[0].data = (void *) __get_free_pages(GFP_KERNEL, JSET_BITS)) || in bch_journal_alloc()
852 !(j->w[1].data = (void *) __get_free_pages(GFP_KERNEL, JSET_BITS))) in bch_journal_alloc()