Lines Matching refs:seq
24 static inline bool journal_seq_unwritten(struct journal *j, u64 seq) in journal_seq_unwritten() argument
26 return seq > j->seq_ondisk; in journal_seq_unwritten()
36 return atomic64_read(&j->seq) - j->seq_ondisk; in nr_unwritten_journal_entries()
44 static void bch2_journal_buf_to_text(struct printbuf *out, struct journal *j, u64 seq) in bch2_journal_buf_to_text() argument
47 unsigned i = seq & JOURNAL_BUF_MASK; in bch2_journal_buf_to_text()
50 prt_printf(out, "seq:\t%llu\n", seq); in bch2_journal_buf_to_text()
96 for (u64 seq = journal_last_unwritten_seq(j); in bch2_journal_bufs_to_text() local
97 seq <= journal_cur_seq(j); in bch2_journal_bufs_to_text()
98 seq++) in bch2_journal_bufs_to_text()
99 bch2_journal_buf_to_text(out, j, seq); in bch2_journal_bufs_to_text()
106 journal_seq_to_buf(struct journal *j, u64 seq) in journal_seq_to_buf() argument
110 EBUG_ON(seq > journal_cur_seq(j)); in journal_seq_to_buf()
112 if (journal_seq_unwritten(j, seq)) in journal_seq_to_buf()
113 buf = j->buf + (seq & JOURNAL_BUF_MASK); in journal_seq_to_buf()
192 for (u64 seq = journal_last_unwritten_seq(j); in bch2_journal_do_writes() local
193 seq <= journal_cur_seq(j); in bch2_journal_do_writes()
194 seq++) { in bch2_journal_do_writes()
195 unsigned idx = seq & JOURNAL_BUF_MASK; in bch2_journal_do_writes()
203 if (!journal_state_seq_count(j, j->reservations, seq)) { in bch2_journal_do_writes()
204 j->seq_write_started = seq; in bch2_journal_do_writes()
218 void bch2_journal_buf_put_final(struct journal *j, u64 seq) in bch2_journal_buf_put_final() argument
222 if (__bch2_journal_pin_put(j, seq)) in bch2_journal_buf_put_final()
326 BUG_ON(buf->last_seq > le64_to_cpu(buf->data->seq)); in __journal_entry_close()
332 __bch2_journal_buf_put(j, le64_to_cpu(buf->data->seq)); in __journal_entry_close()
415 if (atomic64_read(&j->seq) - j->seq_write_started == JOURNAL_STATE_BUF_NR) in journal_entry_open()
459 atomic64_inc(&j->seq); in journal_entry_open()
470 BUG_ON(j->pin.back - 1 != atomic64_read(&j->seq)); in journal_entry_open()
485 buf->data->seq = cpu_to_le64(journal_cur_seq(j)); in journal_entry_open()
529 bool ret = atomic64_read(&j->seq) == j->seq_ondisk; in journal_quiesced()
812 int bch2_journal_flush_seq_async(struct journal *j, u64 seq, in bch2_journal_flush_seq_async() argument
819 if (seq <= j->flushed_seq_ondisk) in bch2_journal_flush_seq_async()
824 if (WARN_ONCE(seq > journal_cur_seq(j), in bch2_journal_flush_seq_async()
826 seq, journal_cur_seq(j))) in bch2_journal_flush_seq_async()
830 if (j->err_seq && seq >= j->err_seq) { in bch2_journal_flush_seq_async()
835 if (seq <= j->flushed_seq_ondisk) { in bch2_journal_flush_seq_async()
841 seq = max(seq, journal_last_unwritten_seq(j)); in bch2_journal_flush_seq_async()
844 if (seq > journal_cur_seq(j)) { in bch2_journal_flush_seq_async()
862 seq = res.seq; in bch2_journal_flush_seq_async()
863 buf = journal_seq_to_buf(j, seq); in bch2_journal_flush_seq_async()
884 buf = journal_seq_to_buf(j, seq); in bch2_journal_flush_seq_async()
886 seq++; in bch2_journal_flush_seq_async()
891 j->flushing_seq = max(j->flushing_seq, seq); in bch2_journal_flush_seq_async()
896 if (seq == journal_cur_seq(j)) in bch2_journal_flush_seq_async()
903 int bch2_journal_flush_seq(struct journal *j, u64 seq, unsigned task_state) in bch2_journal_flush_seq() argument
911 if (seq <= j->flushed_seq_ondisk) in bch2_journal_flush_seq()
915 (ret2 = bch2_journal_flush_seq_async(j, seq, NULL)), in bch2_journal_flush_seq()
930 bch2_journal_flush_seq_async(j, atomic64_read(&j->seq), parent); in bch2_journal_flush_async()
935 return bch2_journal_flush_seq(j, atomic64_read(&j->seq), TASK_UNINTERRUPTIBLE); in bch2_journal_flush()
984 struct journal_buf *buf = j->buf + (res.seq & JOURNAL_BUF_MASK); in __bch2_journal_meta()
994 return bch2_journal_flush_seq(j, res.seq, TASK_UNINTERRUPTIBLE); in __bch2_journal_meta()
1071 for (u64 seq = journal_last_unwritten_seq(j); in __bch2_next_write_buffer_flush_journal_buf() local
1072 seq <= max_seq; in __bch2_next_write_buffer_flush_journal_buf()
1073 seq++) { in __bch2_next_write_buffer_flush_journal_buf()
1074 unsigned idx = seq & JOURNAL_BUF_MASK; in __bch2_next_write_buffer_flush_journal_buf()
1081 unsigned open = seq == journal_cur_seq(j) && __journal_entry_is_open(s); in __bch2_next_write_buffer_flush_journal_buf()
1428 u64 seq; in bch2_journal_writing_to_device() local
1431 for (seq = journal_last_unwritten_seq(j); in bch2_journal_writing_to_device()
1432 seq <= journal_cur_seq(j) && !ret; in bch2_journal_writing_to_device()
1433 seq++) { in bch2_journal_writing_to_device()
1434 struct journal_buf *buf = journal_seq_to_buf(j, seq); in bch2_journal_writing_to_device()
1527 atomic64_set(&j->seq, cur_seq - 1); in bch2_fs_journal_start()
1529 u64 seq; in bch2_fs_journal_start() local
1530 fifo_for_each_entry_ptr(p, &j->pin, seq) in bch2_fs_journal_start()
1539 seq = le64_to_cpu(i->j.seq); in bch2_fs_journal_start()
1540 BUG_ON(seq >= cur_seq); in bch2_fs_journal_start()
1542 if (seq < last_seq) in bch2_fs_journal_start()
1546 j->last_empty_seq = le64_to_cpu(i->j.seq); in bch2_fs_journal_start()
1548 p = journal_seq_pin(j, seq); in bch2_fs_journal_start()