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

Lines Matching defs:revoke

2  * linux/fs/revoke.c
12 * Journal revoke routines for the generic filesystem journaling code;
17 * blocks. The revoke mechanism is used in two separate places:
23 * revoked blocks. If there are multiple revoke records in the log
25 * entry for a block beyond the last revoke, then that log entry still
33 * cancel the revoke before the transaction commits.
36 * The revoke must take precedence over the write of the block, so we
37 * need either to cancel the journal entry or to write the revoke
39 * latter: journaling a block cancels any revoke record for that block
40 * in the current transaction, so any revoke for that block in the
42 * the revoke must take precedence.
45 * The data write is allowed to succeed, but the revoke is _not_
47 * overwriting the new data. We don't even need to clear the revoke
52 * RevokeValid clear: no cached revoke status, need to look it up
72 /* Each revoke record represents one single revoked block. During
74 last transaction to revoke this block. */
84 /* The revoke table is just a simple hash table of revoke records. */
102 /* Utility functions to maintain the revoke table */
142 /* Find a revoke record in the journal's hash table. */
192 /* Initialise the revoke table for a given journal to a given size. */
262 /* Destoy a journal's revoke table. The table must already be empty! */
301 * hfsplus_jbd_revoke: revoke a given buffer_head from the journal. This
305 * revoke.
309 * before the revoke is complete. In ext3, this implies calling the
310 * revoke before clearing the block bitmap when we are deleting
338 HFSPLUS_J_ASSERT (!"Cannot set revoke feature!");
361 * since it's illegal to create a revoke
364 * risk missing a subsequent revoke
372 /* We really ought not ever to revoke twice in a row without
373 first having the revoke cancelled: it's illegal to free a
393 hfsplus_jbd_debug(2, "insert revoke for block %lu, bh_in=%p\n", blocknr, bh_in);
401 * Cancel an outstanding revoke. For use only internally by the
405 * being journaled: if there is no revoke pending on the buffer, then we
411 * the second time we would still have a pending revoke to cancel. So,
425 hfsplus_jbd_debug(4, "hfsplus_jbd_head %p, cancelling revoke\n", jh);
428 * only perform the full cancel if the revoke bit is set. If
429 * not, we can't trust the revoke bit, and we need to do the
430 * full search for a revoke record. */
441 hfsplus_jbd_debug(4, "cancelled existing revoke on "
457 /* Finally, have we just cleared revoke on an unhashed
459 * revoked status on any hashed alias too, otherwise the revoke
491 * Write revoke records to the journal for all entries in the current
492 * revoke hash, deleting the entries as we go.
502 struct hfsplus_jbd_revoke_table_s *revoke;
510 /* select revoke table for committing transaction */
511 revoke = journal->j_revoke == journal->j_revoke_table[0] ?
514 for (i = 0; i < revoke->hash_size; i++) {
515 hash_list = &revoke->hash_table[i];
530 hfsplus_jbd_debug(1, "Wrote %d revoke records\n", count);
534 * Write out one revoke record. We need to create a new descriptor
551 revoke records: only the IO to the journal is omitted. */
591 * Flush a revoke descriptor out to the journal. If we are aborting,
623 * record all revoke records, including the tid of the latest instance
624 * of each revoke in the journal
627 * (ie. has not been revoked by a revoke record in that or a subsequent
630 * empty the revoke table after recovery.
634 * First, setting revoke records. We create a new revoke record for
658 * Test revoke records. For a given block referenced in the log, has
659 * that block been revoked? A revoke record with a given transaction
679 * Finally, once recovery is over, we need to clear the revoke table so
688 struct hfsplus_jbd_revoke_table_s *revoke;
690 revoke = journal->j_revoke;
692 for (i = 0; i < revoke->hash_size; i++) {
693 hash_list = &revoke->hash_table[i];