Lines Matching refs:seq

30 static inline bool journal_seq_unwritten(struct journal *j, u64 seq)
32 return seq > j->seq_ondisk;
42 return atomic64_read(&j->seq) - j->seq_ondisk;
50 static void bch2_journal_buf_to_text(struct printbuf *out, struct journal *j, u64 seq)
53 unsigned i = seq & JOURNAL_BUF_MASK;
56 prt_printf(out, "seq:\t%llu\n", seq);
93 for (u64 seq = journal_last_unwritten_seq(j);
94 seq <= journal_cur_seq(j);
95 seq++)
96 bch2_journal_buf_to_text(out, j, seq);
101 journal_seq_to_buf(struct journal *j, u64 seq)
105 EBUG_ON(seq > journal_cur_seq(j));
107 if (journal_seq_unwritten(j, seq)) {
108 buf = j->buf + (seq & JOURNAL_BUF_MASK);
109 EBUG_ON(le64_to_cpu(buf->data->seq) != seq);
188 for (u64 seq = journal_last_unwritten_seq(j);
189 seq <= journal_cur_seq(j);
190 seq++) {
191 unsigned idx = seq & JOURNAL_BUF_MASK;
213 void bch2_journal_buf_put_final(struct journal *j, u64 seq)
217 if (__bch2_journal_pin_put(j, seq))
295 BUG_ON(buf->last_seq > le64_to_cpu(buf->data->seq));
301 __bch2_journal_buf_put(j, old.idx, le64_to_cpu(buf->data->seq));
400 * The fifo_push() needs to happen at the same time as j->seq is
403 atomic64_inc(&j->seq);
406 BUG_ON(j->pin.back - 1 != atomic64_read(&j->seq));
421 buf->data->seq = cpu_to_le64(journal_cur_seq(j));
465 bool ret = atomic64_read(&j->seq) == j->seq_ondisk;
562 prt_printf(&buf, "seq %llu\n", journal_cur_seq(j));
652 * @seq: seq to flush
654 * Returns: 1 if @seq has already been flushed, 0 if @seq is being flushed,
655 * -EIO if @seq will never be flushed
660 int bch2_journal_flush_seq_async(struct journal *j, u64 seq,
666 if (seq <= j->flushed_seq_ondisk)
671 if (WARN_ONCE(seq > journal_cur_seq(j),
672 "requested to flush journal seq %llu, but currently at %llu",
673 seq, journal_cur_seq(j)))
677 if (j->err_seq && seq >= j->err_seq) {
682 if (seq <= j->flushed_seq_ondisk) {
687 /* if seq was written, but not flushed - flush a newer one instead */
688 seq = max(seq, journal_last_unwritten_seq(j));
691 if (seq > journal_cur_seq(j)) {
709 seq = res.seq;
710 buf = journal_seq_to_buf(j, seq);
731 buf = journal_seq_to_buf(j, seq);
733 seq++;
742 if (seq == journal_cur_seq(j))
749 int bch2_journal_flush_seq(struct journal *j, u64 seq)
755 * Don't update time_stats when @seq is already flushed:
757 if (seq <= j->flushed_seq_ondisk)
760 ret = wait_event_interruptible(j->wait, (ret2 = bch2_journal_flush_seq_async(j, seq, NULL)));
774 bch2_journal_flush_seq_async(j, atomic64_read(&j->seq), parent);
779 return bch2_journal_flush_seq(j, atomic64_read(&j->seq));
784 * @seq
786 bool bch2_journal_noflush_seq(struct journal *j, u64 seq)
795 if (seq <= c->journal.flushed_seq_ondisk)
799 if (seq <= c->journal.flushed_seq_ondisk)
803 unwritten_seq < seq;
832 buf = j->buf + (res.seq & JOURNAL_BUF_MASK);
842 return bch2_journal_flush_seq(j, res.seq);
875 for (u64 seq = journal_last_unwritten_seq(j);
876 seq <= max_seq;
877 seq++) {
878 unsigned idx = seq & JOURNAL_BUF_MASK;
882 if (seq == journal_cur_seq(j))
1147 u64 seq;
1150 for (seq = journal_last_unwritten_seq(j);
1151 seq <= journal_cur_seq(j) && !ret;
1152 seq++) {
1153 struct journal_buf *buf = journal_seq_to_buf(j, seq);
1202 u64 last_seq = cur_seq, nr, seq;
1232 atomic64_set(&j->seq, cur_seq - 1);
1234 fifo_for_each_entry_ptr(p, &j->pin, seq)
1243 seq = le64_to_cpu(i->j.seq);
1244 BUG_ON(seq >= cur_seq);
1246 if (seq < last_seq)
1250 j->last_empty_seq = le64_to_cpu(i->j.seq);
1252 p = journal_seq_pin(j, seq);
1432 prt_printf(out, "seq:\t%llu\n", journal_cur_seq(j));
1500 prt_printf(out, "dirty_ondisk\t%u (seq %llu)\n",ja->dirty_idx_ondisk, ja->bucket_seq[ja->dirty_idx_ondisk]);
1501 prt_printf(out, "dirty_idx\t%u (seq %llu)\n", ja->dirty_idx, ja->bucket_seq[ja->dirty_idx]);
1502 prt_printf(out, "cur_idx\t%u (seq %llu)\n", ja->cur_idx, ja->bucket_seq[ja->cur_idx]);
1518 bool bch2_journal_seq_pins_to_text(struct printbuf *out, struct journal *j, u64 *seq)
1524 *seq = max(*seq, j->pin.front);
1526 if (*seq >= j->pin.back) {
1533 pin_list = journal_seq_pin(j, *seq);
1535 prt_printf(out, "%llu: count %u\n", *seq, atomic_read(&pin_list->count));
1558 u64 seq = 0;
1560 while (!bch2_journal_seq_pins_to_text(out, j, &seq))
1561 seq++;