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

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 int block)
131 struct jbd_revoke_table_s *table = journal->j_revoke;
139 static int insert_revoke_hash(journal_t *journal, unsigned int blocknr,
152 hash_list = &journal->j_revoke->hash_table[hash(journal, blocknr)];
153 spin_lock(&journal->j_revoke_lock);
155 spin_unlock(&journal->j_revoke_lock);
166 /* Find a revoke record in the journal's hash table. */
168 static struct jbd_revoke_record_s *find_revoke_record(journal_t *journal,
174 hash_list = &journal->j_revoke->hash_table[hash(journal, blocknr)];
176 spin_lock(&journal->j_revoke_lock);
180 spin_unlock(&journal->j_revoke_lock);
185 spin_unlock(&journal->j_revoke_lock);
272 /* Initialise the revoke table for a given journal to a given size. */
273 int journal_init_revoke(journal_t *journal, int hash_size)
275 J_ASSERT(journal->j_revoke_table[0] == NULL);
278 journal->j_revoke_table[0] = journal_init_revoke_table(hash_size);
279 if (!journal->j_revoke_table[0])
282 journal->j_revoke_table[1] = journal_init_revoke_table(hash_size);
283 if (!journal->j_revoke_table[1])
286 journal->j_revoke = journal->j_revoke_table[1];
288 spin_lock_init(&journal->j_revoke_lock);
293 journal_destroy_revoke_table(journal->j_revoke_table[0]);
298 /* Destroy a journal's revoke table. The table must already be empty! */
299 void journal_destroy_revoke(journal_t *journal)
301 journal->j_revoke = NULL;
302 if (journal->j_revoke_table[0])
303 journal_destroy_revoke_table(journal->j_revoke_table[0]);
304 if (journal->j_revoke_table[1])
305 journal_destroy_revoke_table(journal->j_revoke_table[1]);
312 * journal_revoke: revoke a given buffer_head from the journal. This
339 journal_t *journal;
347 journal = handle->h_transaction->t_journal;
348 if (!journal_set_features(journal, 0, 0, JFS_FEATURE_INCOMPAT_REVOKE)){
353 bdev = journal->j_fs_dev;
357 bh = __find_get_block(bdev, blocknr, journal->j_blocksize);
367 bh2 = __find_get_block(bdev, blocknr, journal->j_blocksize);
405 err = insert_revoke_hash(journal, blocknr,
429 journal_t *journal = handle->h_transaction->t_journal;
448 record = find_revoke_record(journal, bh->b_blocknr);
452 spin_lock(&journal->j_revoke_lock);
454 spin_unlock(&journal->j_revoke_lock);
462 record = find_revoke_record(journal, bh->b_blocknr);
486 void journal_switch_revoke_table(journal_t *journal)
490 if (journal->j_revoke == journal->j_revoke_table[0])
491 journal->j_revoke = journal->j_revoke_table[1];
493 journal->j_revoke = journal->j_revoke_table[0];
495 for (i = 0; i < journal->j_revoke->hash_size; i++)
496 INIT_LIST_HEAD(&journal->j_revoke->hash_table[i]);
500 * Write revoke records to the journal for all entries in the current
503 void 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 = journal_get_descriptor_buffer(journal);
597 * Flush a revoke descriptor out to the journal. If we are aborting,
600 * journal buffer list.
603 static void flush_descriptor(journal_t *journal,
610 if (is_journal_aborted(journal)) {
630 * of each revoke in the journal
646 int journal_set_revoke(journal_t *journal,
652 record = find_revoke_record(journal, blocknr);
660 return insert_revoke_hash(journal, blocknr, sequence);
670 int journal_test_revoke(journal_t *journal,
676 record = find_revoke_record(journal, blocknr);
689 void journal_clear_revoke(journal_t *journal)
696 revoke = journal->j_revoke;