journal.c (e2fsck_check_ext3_journal): Force a fsck if we remove the
journal stored on a reserved inode. Also force a fsck if the journal
appears to exist while !NEEDS_RECOVERY, and we forcibly reset the
journal.
journal.c, pass1.c, super.c, unix.c: Replace use of struct ext2fs_sb
with struct ext2_super_block.
ChangeLog, debugfs.c:
debugfs.c Replace use of struct ext2fs_sb with struct ext2_super_block.
problem.h: Fixed numbering of pass1 error messages; an extra 0 had
slipped into some of the numbers. (Pointed out by Andreas Dilger)
journal.c (e2fsck_journal_fix_corrupt_super): Clean up unnecessary
automatic variable. Add explanatory comment about the kernel
emulation routines. (Suggested by Andreas Dilger)
super.c (release_orphan_inodes): Fix spelling typo in error message.
ChangeLog, unix.c:
unix.c (main): Clarify coments (no code changes)
ChangeLog, journal.c:
journal.c (e2fsck_check_ext3_journal): Check to make sure the journal
fields are consistent if any of the superblock fields are set. (Backs
out erroneous change made by sct, pointed out by Andreas.)
jfs_e2fsck.h, jfs_user.h: Replaces jfs_compat.h. The jfs.h file has
been moved to the include/linux directory.
journal.c, revoke.c, recovery.c: Updated files from Stephen to support
the V2 superblock and revoke processing. The journal.c and revoke.c
files are copies from the ext3 kernel source.
Makefile.in: Added revoke.c to the list of source/object files.
Makefile.in:
Fix up some mistakes in the source file list, and regenerate the
dependencies.
Update Makefile dependencies.
ChangeLog, jfs.h:
jfs.h: Remove excess #include of JFS_DEBUG. Not needed for e2fsprogs,
since we optioanlly define it in the configuration file system.
jfs.h, jfs_compat.h, journal.c: Updated to include the definition of
the new journal superblock format; still only supports V1 superblocks
for now. (From sct)
super.c (release_inode_block, release_inode_blocks,
release_orphan_inodes): Add code to deal with truncating inodes which
are still in use (but which are on the orphan list because they need
truncation).
problem.c, problem.h: Rename PR_0_CLEAR_ORPHAN_INODE to
PR_0_ORPHAN_CLEAR_INODE, and remove PR_0_ORPHAN_INODE_INUSE.
journal.c (e2fsck_run_ext3_journal): Add i18n support, and print a
message when the journal is being recovered.
jfs_compat.h (J_ASSERT):
journal.c (e2fsck_run_ext3_journal):
pass3.c (adjust_inode_count): Use fatal_error() instead of exit().
ChangeLog, super.c:
super.c (release_orphan_inodes): Fix typo; should do bounds checking
on next_ino instead of ino.
journal.c (e2fsck_journal_load): Fix **nasty** bug which caused
e2fsck_check_ext3_journal to smash the journal because
journal->j_transaction_sequence wasn't getting initialized.
journal.c: (recover_ext3_journal, e2fsck_run_ext3_journal): Move call
to e2fsck_clear_recover from recover_ext3_journal to after the
filesystem has been closed and reopened. Otherwise, the superblock in
the filesystem handle will probably be stale, and will overwrite the
newer version of the superblock written by the log recovery.
message.c (expand_inode_expression): Add support for %Iu and %Ig
problem.h (PR_0_CLEAR_ORPHAN_INODE): Add new problem code.
super.c (release_orphan_inodes, release_inode_block,
release_inode_blocks): Update the block group descriptor counts when
freeing the orphan inode. Use PR_0_CLEAR_ORPHAN_INODE to report when
we clear an orphan.
journal.c (e2fsck_run_ext3_journal): Fix a bug where we attempted to
reopen the filesystem using the device name instead of the filesystem
name.
Makefile.in: Update the make dependencies
problem.c, problem.h: Add the problem codes:
PR_0_ORPHAN_ILLEGAL_BLOCK_NUM, PR_0_ORPHAN_ALREADY_CLEARED_BLOCK,
PR_0_ORPHAN_ILLEGAL_HEAD_INODE, PR_0_ORPHAN_ILLEGAL_INODE,
PR_0_ORPHAN_INODE_INUSE
super.c (release_inode_blocks, release_orphan_inodes,
check_super_block): Add support for clearing orphaned inodes from the
unmounted filesystem.
journal.c (e2fsck_recover_ext3_journal): Remove the last orphan check;
this is now handled in check_super_block --- non-journaled filesystems
can use the orphan list in the future. Also, move the the re-opening
of the filesystem to e2fsck_run_ext3_journal().
debugfs.c:
debugfs.c (finish_range): Make sure the pager FILE pointer to use.
configure, configure.in, ChangeLog:
configure.in (JFS_DEBUG): Add support for --enable-jfs-debug
journal.c: implement loading of ext3 journal for recovery code
problem.c (fix_problem): return answer from PR_AFTER_CODE to caller.
Add journal problems.
recovery.c (journal_recover): user-space ext3 journal recovery code
unix.c (main) : check journal and do recovery in separate steps
jfs.h, recovery.c: Files ext3 kernel code.
jfs_compat.h: Compatibility header file to allow kernel code to be
linked to e2fsck.
unix.c (check_if_skip): Modify algorithm for checking s_max_mnt_count
to match with the kernel. (If s_max_mnt_count is negative, ignore the
mnt_count check.)
unix.c (e2fsck_update_progress): Adjust the width of the progress bar
dynamically, based on the filesystem name that we need to display.
unix.c (main): If the ext3 needs_recovery flag is set, call
e2fsck_run_ext3_journal() and then restart the e2fsck run.
journal.c (e2fsck_run_ext3_journal): New file which contains logic to
recover the ext3 journal. This version relies on the kernel being
able to mount the filesystem in order to run the journal.