/* Finally, once recovery is over, we need to clear the revoke table so that it can be reused by the running filesystem.  */
void jbd2_journal_clear_revoke(journal_t *journal)
/* Finally, once recovery is over, we need to clear the revoke table so that it can be reused by the running filesystem.  */
void jbd2_journal_clear_revoke(journal_t *journal)
{
	int i;
	struct list_head *hash_list;
	struct jbd2_revoke_record_s *record;
	struct jbd2_revoke_table_s *revoke;
	revoke = journal->j_revoke;
	for (i = 0; i < revoke->hash_size; i++) {
		hash_list = &revoke->hash_table[i];
		while (!list_empty(hash_list)) {
			record = (struct jbd2_revoke_record_s*) hash_list->next;
			list_del(&record->hash);
			kmem_cache_free(jbd2_revoke_record_cache, record);
		}
	}
}