Lines Matching refs:journal

134 static inline int hash(journal_t *journal, unsigned long long block)  in hash()  argument
136 return hash_64(block, journal->j_revoke->hash_shift); in hash()
139 static int insert_revoke_hash(journal_t *journal, unsigned long long blocknr, in insert_revoke_hash() argument
154 hash_list = &journal->j_revoke->hash_table[hash(journal, blocknr)]; in insert_revoke_hash()
155 spin_lock(&journal->j_revoke_lock); in insert_revoke_hash()
157 spin_unlock(&journal->j_revoke_lock); in insert_revoke_hash()
163 static struct jbd2_revoke_record_s *find_revoke_record(journal_t *journal, in find_revoke_record() argument
169 hash_list = &journal->j_revoke->hash_table[hash(journal, blocknr)]; in find_revoke_record()
171 spin_lock(&journal->j_revoke_lock); in find_revoke_record()
175 spin_unlock(&journal->j_revoke_lock); in find_revoke_record()
180 spin_unlock(&journal->j_revoke_lock); in find_revoke_record()
262 int jbd2_journal_init_revoke(journal_t *journal, int hash_size) in jbd2_journal_init_revoke() argument
264 J_ASSERT(journal->j_revoke_table[0] == NULL); in jbd2_journal_init_revoke()
267 journal->j_revoke_table[0] = jbd2_journal_init_revoke_table(hash_size); in jbd2_journal_init_revoke()
268 if (!journal->j_revoke_table[0]) in jbd2_journal_init_revoke()
271 journal->j_revoke_table[1] = jbd2_journal_init_revoke_table(hash_size); in jbd2_journal_init_revoke()
272 if (!journal->j_revoke_table[1]) in jbd2_journal_init_revoke()
275 journal->j_revoke = journal->j_revoke_table[1]; in jbd2_journal_init_revoke()
277 spin_lock_init(&journal->j_revoke_lock); in jbd2_journal_init_revoke()
282 jbd2_journal_destroy_revoke_table(journal->j_revoke_table[0]); in jbd2_journal_init_revoke()
288 void jbd2_journal_destroy_revoke(journal_t *journal) in jbd2_journal_destroy_revoke() argument
290 journal->j_revoke = NULL; in jbd2_journal_destroy_revoke()
291 if (journal->j_revoke_table[0]) in jbd2_journal_destroy_revoke()
292 jbd2_journal_destroy_revoke_table(journal->j_revoke_table[0]); in jbd2_journal_destroy_revoke()
293 if (journal->j_revoke_table[1]) in jbd2_journal_destroy_revoke()
294 jbd2_journal_destroy_revoke_table(journal->j_revoke_table[1]); in jbd2_journal_destroy_revoke()
328 journal_t *journal; in jbd2_journal_revoke() local
336 journal = handle->h_transaction->t_journal; in jbd2_journal_revoke()
337 if (!jbd2_journal_set_features(journal, 0, 0, JBD2_FEATURE_INCOMPAT_REVOKE)){ in jbd2_journal_revoke()
342 bdev = journal->j_fs_dev; in jbd2_journal_revoke()
346 bh = __find_get_block(bdev, blocknr, journal->j_blocksize); in jbd2_journal_revoke()
356 bh2 = __find_get_block(bdev, blocknr, journal->j_blocksize); in jbd2_journal_revoke()
394 err = insert_revoke_hash(journal, blocknr, in jbd2_journal_revoke()
418 journal_t *journal = handle->h_transaction->t_journal; in jbd2_journal_cancel_revoke() local
437 record = find_revoke_record(journal, bh->b_blocknr); in jbd2_journal_cancel_revoke()
441 spin_lock(&journal->j_revoke_lock); in jbd2_journal_cancel_revoke()
443 spin_unlock(&journal->j_revoke_lock); in jbd2_journal_cancel_revoke()
451 record = find_revoke_record(journal, bh->b_blocknr); in jbd2_journal_cancel_revoke()
476 void jbd2_clear_buffer_revoked_flags(journal_t *journal) in jbd2_clear_buffer_revoked_flags() argument
478 struct jbd2_revoke_table_s *revoke = journal->j_revoke; in jbd2_clear_buffer_revoked_flags()
490 bh = __find_get_block(journal->j_fs_dev, in jbd2_clear_buffer_revoked_flags()
492 journal->j_blocksize); in jbd2_clear_buffer_revoked_flags()
505 void jbd2_journal_switch_revoke_table(journal_t *journal) in jbd2_journal_switch_revoke_table() argument
509 if (journal->j_revoke == journal->j_revoke_table[0]) in jbd2_journal_switch_revoke_table()
510 journal->j_revoke = journal->j_revoke_table[1]; in jbd2_journal_switch_revoke_table()
512 journal->j_revoke = journal->j_revoke_table[0]; in jbd2_journal_switch_revoke_table()
514 for (i = 0; i < journal->j_revoke->hash_size; i++) in jbd2_journal_switch_revoke_table()
515 INIT_LIST_HEAD(&journal->j_revoke->hash_table[i]); in jbd2_journal_switch_revoke_table()
522 void jbd2_journal_write_revoke_records(journal_t *journal, in jbd2_journal_write_revoke_records() argument
538 revoke = journal->j_revoke == journal->j_revoke_table[0] ? in jbd2_journal_write_revoke_records()
539 journal->j_revoke_table[1] : journal->j_revoke_table[0]; in jbd2_journal_write_revoke_records()
547 write_one_revoke_record(journal, transaction, log_bufs, in jbd2_journal_write_revoke_records()
556 flush_descriptor(journal, descriptor, offset, write_op); in jbd2_journal_write_revoke_records()
565 static void write_one_revoke_record(journal_t *journal, in write_one_revoke_record() argument
582 if (is_journal_aborted(journal)) in write_one_revoke_record()
589 if (jbd2_journal_has_csum_v2or3(journal)) in write_one_revoke_record()
592 if (jbd2_has_feature_64bit(journal)) in write_one_revoke_record()
599 if (offset + sz > journal->j_blocksize - csum_size) { in write_one_revoke_record()
600 flush_descriptor(journal, descriptor, offset, write_op); in write_one_revoke_record()
606 descriptor = jbd2_journal_get_descriptor_buffer(journal); in write_one_revoke_record()
622 if (jbd2_has_feature_64bit(journal)) in write_one_revoke_record()
655 static void flush_descriptor(journal_t *journal, in flush_descriptor() argument
661 if (is_journal_aborted(journal)) { in flush_descriptor()
668 jbd2_revoke_csum_set(journal, descriptor); in flush_descriptor()
699 int jbd2_journal_set_revoke(journal_t *journal, in jbd2_journal_set_revoke() argument
705 record = find_revoke_record(journal, blocknr); in jbd2_journal_set_revoke()
713 return insert_revoke_hash(journal, blocknr, sequence); in jbd2_journal_set_revoke()
723 int jbd2_journal_test_revoke(journal_t *journal, in jbd2_journal_test_revoke() argument
729 record = find_revoke_record(journal, blocknr); in jbd2_journal_test_revoke()
742 void jbd2_journal_clear_revoke(journal_t *journal) in jbd2_journal_clear_revoke() argument
749 revoke = journal->j_revoke; in jbd2_journal_clear_revoke()