JOURNAL_GET_UNDO_ACC(9) The Linux Journalling API JOURNAL_GET_UNDO_ACC(9)NAMEjournal_get_undo_access - Notify intent to modify metadata with
non-rewindable consequences
SYNOPSIS
int journal_get_undo_access(handle_t * handle,
struct buffer_head * bh);
ARGUMENTS
handle
transaction
bh
buffer to undo
DESCRIPTION
Sometimes there is a need to distinguish between metadata which has
been committed to disk and that which has not. The ext3fs code uses
this for freeing and allocating space, we have to make sure that we do
not reuse freed space until the deallocation has been committed, since
if we overwrote that space we would make the delete un-rewindable in
case of a crash.
To deal with that, journal_get_undo_access requests write access to a
buffer for parts of non-rewindable operations such as delete operations
on the bitmaps. The journaling code must keep a copy of the buffer's
contents prior to the undo_access call until such time as we know that
the buffer has definitely been committed to disk.
We never need to know which transaction the committed data is part of,
buffers touched here are guaranteed to be dirtied later and so will be
committed to a new transaction in due course, at which point we can
discard the old committed data pointer.
Returns error number or 0 on success.
AUTHORS
Roger Gammans <rgammans@computer-surgery.co.uk>
Author.
Stephen Tweedie <sct@redhat.com>
Author.
COPYRIGHTKernel Hackers Manual 3.11 November 2013 JOURNAL_GET_UNDO_ACC(9)