Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

journal_get_undo_access(9) [centos man page]

JOURNAL_GET_UNDO_ACC(9) 				     The Linux Journalling API					   JOURNAL_GET_UNDO_ACC(9)

NAME
journal_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. COPYRIGHT
Kernel Hackers Manual 3.10 June 2014 JOURNAL_GET_UNDO_ACC(9)

Check Out this Related Man Page

JOURNAL_ABORT(9)					     The Linux Journalling API						  JOURNAL_ABORT(9)

NAME
journal_abort - Shutdown the journal immediately. SYNOPSIS
void journal_abort(journal_t * journal, int errno); ARGUMENTS
journal the journal to shutdown. errno an error number to record in the journal indicating the reason for the shutdown. DESCRIPTION
Perform a complete, immediate shutdown of the ENTIRE journal (not of a single transaction). This operation cannot be undone without closing and reopening the journal. The journal_abort function is intended to support higher level error recovery mechanisms such as the ext2/ext3 remount-readonly error mode. Journal abort has very specific semantics. Any existing dirty, unjournaled buffers in the main filesystem will still be written to disk by bdflush, but the journaling mechanism will be suspended immediately and no further transaction commits will be honoured. Any dirty, journaled buffers will be written back to disk without hitting the journal. Atomicity cannot be guaranteed on an aborted filesystem, but we _do_ attempt to leave as much data as possible behind for fsck to use for cleanup. Any attempt to get a new transaction handle on a journal which is in ABORT state will just result in an -EROFS error return. A journal_stop on an existing handle will return -EIO if we have entered abort state during the update. Recursive transactions are not disturbed by journal abort until the final journal_stop, which will receive the -EIO error. Finally, the journal_abort call allows the caller to supply an errno which will be recorded (if possible) in the journal superblock. This allows a client to record failure conditions in the middle of a transaction without having to complete the transaction to record the failure to disk. ext3_error, for example, now uses this functionality. Errors which originate from within the journaling layer will NOT supply an errno; a null errno implies that absolutely no further writes are done to the journal (unless there are any already in progress). AUTHORS
Roger Gammans <rgammans@computer-surgery.co.uk> Author. Stephen Tweedie <sct@redhat.com> Author. COPYRIGHT
Kernel Hackers Manual 2.6. July 2010 JOURNAL_ABORT(9)
Man Page