The Linux Journalling API

Roger Gammans

      
     

Stephen Tweedie

      
     

This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

For more details see the file COPYING in the source distribution of Linux.


Table of Contents
1. Overview
1.1. Details
1.2. Summary
2. Data Types
2.1. Structures
typedef handle_t --  The handle_t type represents a single atomic update being performed by some process.
typedef journal_t --  The journal_t maintains all of the journaling state information for a single filesystem.
struct handle_s --  The handle_s type is the concrete type associated with
struct journal_s --  The journal_s type is the concrete type associated with
3. Functions
3.1. Journal Level
journal_init_dev --  creates an initialises a journal structure
journal_init_inode --  creates a journal which maps to a inode.
journal_create --  Initialise the new journal file
journal_update_superblock --  Update journal sb on disk.
journal_load --  Read journal from disk.
journal_destroy --  Release a journal_t structure.
journal_check_used_features --  Check if features specified are used.
journal_check_available_features --  Check feature set in journalling layer
journal_set_features --  Mark a given journal feature in the superblock
journal_update_format --  Update on-disk journal structure.
journal_flush --  Flush journal
journal_wipe --  Wipe journal contents
journal_abort --  Shutdown the journal immediately.
journal_errno --  returns the journal's error state.
journal_clear_err --  clears the journal's error state
journal_ack_err --  Ack journal err.
journal_recover --  recovers a on-disk journal
3.2. Transasction Level
journal_start --  Obtain a new handle.
journal_extend --  extend buffer credits.
journal_restart --  restart a handle .
journal_lock_updates --  establish a transaction barrier.
journal_unlock_updates --  release barrier
journal_get_write_access --  notify intent to modify a buffer for metadata (not data) update.
journal_get_create_access --  notify intent to use newly created bh
journal_get_undo_access --  Notify intent to modify metadata with
journal_dirty_data --  mark a buffer as containing dirty data which
journal_dirty_metadata --  mark a buffer as containing dirty metadata
journal_forget --  bforget for potentially-journaled buffers.
journal_stop --  complete a transaction
journal_try_to_free_buffers --  try to free page buffers.
journal_invalidatepage -- 
4. See also