Do not trim journal. Always recover the tail.

With this commit, after the first write to the journal, journal always
starts at block 1 and transaction 2.  During mount, we recover and
replay all the entries in the journal and we find out the actual tail.
Newer transactions are written at this new tail.  This is done in
preparation for stopping metadata block writeback.

The change to commit.c prevents the journal superblock from being
updated.  The change to super.c prevents wiping of the journal upon
mount after a clean unmount.  The change to jbd2_mark_journal_empty
always sets the journal start from the beginning and the rest of the
changes to journal.c and recovery.c is for finding the actual tail after
mount (since now we are doing "recovery" on every mount) and updating
in-memory journal superblock, so that new updates are written at the
actual tail of the journal.

Note: this patch is still a work in progress.  In particular, the
jbd2_metamap_insert() function is no longer present.  We need to
insert things via the new jbd2_transaction_infos_add.  -TYT

4 files changed