• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/fs/jbd2/

Lines Matching refs:journal

20  *   transaction's revoked blocks to the journal
37 * need either to cancel the journal entry or to write the revoke
61 * running transaction (is pointed to by journal->j_revoke), the other one
97 journal replay, this involves recording the transaction ID of the
129 static inline int hash(journal_t *journal, unsigned long long block)
131 struct jbd2_revoke_table_s *table = journal->j_revoke;
140 static int insert_revoke_hash(journal_t *journal, unsigned long long blocknr,
153 hash_list = &journal->j_revoke->hash_table[hash(journal, blocknr)];
154 spin_lock(&journal->j_revoke_lock);
156 spin_unlock(&journal->j_revoke_lock);
167 /* Find a revoke record in the journal's hash table. */
169 static struct jbd2_revoke_record_s *find_revoke_record(journal_t *journal,
175 hash_list = &journal->j_revoke->hash_table[hash(journal, blocknr)];
177 spin_lock(&journal->j_revoke_lock);
181 spin_unlock(&journal->j_revoke_lock);
186 spin_unlock(&journal->j_revoke_lock);
271 /* Initialise the revoke table for a given journal to a given size. */
272 int jbd2_journal_init_revoke(journal_t *journal, int hash_size)
274 J_ASSERT(journal->j_revoke_table[0] == NULL);
277 journal->j_revoke_table[0] = jbd2_journal_init_revoke_table(hash_size);
278 if (!journal->j_revoke_table[0])
281 journal->j_revoke_table[1] = jbd2_journal_init_revoke_table(hash_size);
282 if (!journal->j_revoke_table[1])
285 journal->j_revoke = journal->j_revoke_table[1];
287 spin_lock_init(&journal->j_revoke_lock);
292 jbd2_journal_destroy_revoke_table(journal->j_revoke_table[0]);
297 /* Destroy a journal's revoke table. The table must already be empty! */
298 void jbd2_journal_destroy_revoke(journal_t *journal)
300 journal->j_revoke = NULL;
301 if (journal->j_revoke_table[0])
302 jbd2_journal_destroy_revoke_table(journal->j_revoke_table[0]);
303 if (journal->j_revoke_table[1])
304 jbd2_journal_destroy_revoke_table(journal->j_revoke_table[1]);
311 * jbd2_journal_revoke: revoke a given buffer_head from the journal. This
338 journal_t *journal;
346 journal = handle->h_transaction->t_journal;
347 if (!jbd2_journal_set_features(journal, 0, 0, JBD2_FEATURE_INCOMPAT_REVOKE)){
352 bdev = journal->j_fs_dev;
356 bh = __find_get_block(bdev, blocknr, journal->j_blocksize);
366 bh2 = __find_get_block(bdev, blocknr, journal->j_blocksize);
404 err = insert_revoke_hash(journal, blocknr,
428 journal_t *journal = handle->h_transaction->t_journal;
447 record = find_revoke_record(journal, bh->b_blocknr);
451 spin_lock(&journal->j_revoke_lock);
453 spin_unlock(&journal->j_revoke_lock);
461 record = find_revoke_record(journal, bh->b_blocknr);
485 void jbd2_journal_switch_revoke_table(journal_t *journal)
489 if (journal->j_revoke == journal->j_revoke_table[0])
490 journal->j_revoke = journal->j_revoke_table[1];
492 journal->j_revoke = journal->j_revoke_table[0];
494 for (i = 0; i < journal->j_revoke->hash_size; i++)
495 INIT_LIST_HEAD(&journal->j_revoke->hash_table[i]);
499 * Write revoke records to the journal for all entries in the current
502 void jbd2_journal_write_revoke_records(journal_t *journal,
517 revoke = journal->j_revoke == journal->j_revoke_table[0] ?
518 journal->j_revoke_table[1] : journal->j_revoke_table[0];
526 write_one_revoke_record(journal, transaction,
535 flush_descriptor(journal, descriptor, offset, write_op);
544 static void write_one_revoke_record(journal_t *journal,
558 revoke records: only the IO to the journal is omitted. */
559 if (is_journal_aborted(journal))
567 if (offset == journal->j_blocksize) {
568 flush_descriptor(journal, descriptor, offset, write_op);
574 descriptor = jbd2_journal_get_descriptor_buffer(journal);
590 if (JBD2_HAS_INCOMPAT_FEATURE(journal, JBD2_FEATURE_INCOMPAT_64BIT)) {
605 * Flush a revoke descriptor out to the journal. If we are aborting,
608 * journal buffer list.
611 static void flush_descriptor(journal_t *journal,
618 if (is_journal_aborted(journal)) {
638 * of each revoke in the journal
654 int jbd2_journal_set_revoke(journal_t *journal,
660 record = find_revoke_record(journal, blocknr);
668 return insert_revoke_hash(journal, blocknr, sequence);
678 int jbd2_journal_test_revoke(journal_t *journal,
684 record = find_revoke_record(journal, blocknr);
697 void jbd2_journal_clear_revoke(journal_t *journal)
704 revoke = journal->j_revoke;