History log of /external/e2fsprogs/e2fsck/journal.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e0ed7404719a9ddd2ba427a80db5365c8bad18c0 20-Mar-2014 JP Abgrall <jpa@google.com> Switch back to 1.42.9 now that there is a fix

Revert "Revert changes that moved from 1.41.14 to 1.42.9"

This reverts commit 65f0aab98b20b5994a726ab90d355248bcddfffd.
/external/e2fsprogs/e2fsck/journal.c
65f0aab98b20b5994a726ab90d355248bcddfffd 06-Mar-2014 JP Abgrall <jpa@google.com> Revert changes that moved from 1.41.14 to 1.42.9

Revert "e2fsck: Don't use e2fsck_global_ctx unless HAVE_SIGNAL_H"
commit e80e74c41d85ff93f3d212ba6512340f48054a93.

Revert "Merge remote-tracking branch 'linaro/linaro-1.42.9' into aosp_master"
This reverts commit e97b2b6fc82f840e84dfc631b87f21be44ff2421, reversing
changes made to 7e2fb9d09c245eba70ee008b78007315e9c0f1df.

Revert "Prepare for upstream 1.42.9"
This reverts commit 7e2fb9d09c245eba70ee008b78007315e9c0f1df.

Bug: 13340735
Change-Id: If48b153a95ef5f69f7cdccb00e23524abff3c5a8
Signed-off-by: JP Abgrall <jpa@google.com>
/external/e2fsprogs/e2fsck/journal.c
18a1444b4f1e6a0948fd38fa0de382d86cfe04de 31-Dec-2013 Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org> Add files that would normally be generated by the e2fsprogs build system

Android doesn't run ./configure and friends, so it has to rely on
pre-populated versions of the autogenerated files.

This is somewhat bogus (e.g. hardcoded little-endian reference in
lib/ext2fs/ext2_types.h) and should at some point be fixed, but it's
what Android has always done, not a regression from the 1.41.14 branch.

Also, don't #include config.h which we don't generate (we pass what it
usually contains as -D parameters from Android.mk) anywhere.

Add a new Android.mk file for the quota library.

Change-Id: I162c6327fee5bd06261d9cdcc34bda10f04a6f21
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
/external/e2fsprogs/e2fsck/journal.c
45ff69ffeb700012a7c052f5e45882557a40be7e 16-Dec-2013 Andreas Dilger <adilger@dilger.ca> build: quiet LLVM non-literal string format warning

Compiling with LLVM generates a large number of warnings due
to the use of _() for wrapping strings for i18n:

warning: format string is not a string literal
(potentially insecure) [-Wformat-security]
./nls-enable.h:4:14: note: expanded from macro '_'
#define _(a) (gettext (a))
^~~~~~~~~~~~

These warnings are fixed by using "%s" as the format string,
and then _() is used as the string argument.

Signed-off-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
f0131bdc6ff2b349e84e4767d9fe8b078a0ee521 12-Dec-2013 Darrick J. Wong <darrick.wong@oracle.com> e2fsck: fix memory leaks (on error path)

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
3971bfe878d6c30f9b5be3a2c0310943982a4775 03-Dec-2013 Theodore Ts'o <tytso@mit.edu> e2fsck: use dgrp_t for block group numbers

Make e2fsck consistently use dgrp_t for bloc group numbers to avoid
-Wconveresion noise.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
27dc24defdadbbb63d4c1ed8b6c06839f77388ef 03-Dec-2013 Theodore Ts'o <tytso@mit.edu> e2fsck: fix j_maxlen if the file system is exactly 1 << 32 blocks

If the external journal device has exactly 1 << 32 blocks,
journal->j_maxlen would get set to zero, which would cause e2fsck to
declare the journal to be invalid.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
974d57d3b1f896d2064ba854d7c037ab6478ecf8 03-Dec-2013 Theodore Ts'o <tytso@mit.edu> e2fsck: use errcode_t to suppress some -Wconversion warnings

We need to store some error codes using an int to keep recovery.c as
close as possible to the recovery.c source file in the kernel.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
4dbfd79d1458ce1259b951377e341aeb6197f8c1 07-Oct-2013 Darrick J. Wong <darrick.wong@oracle.com> e2fsprogs: fix blk_t <- blk64_t assignment mismatches

Fix all the places where we should be using a blk64_t instead of a
blk_t. These fixes are more severe because 64bit values could be
truncated silently.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
68477355a9f3b4ca46dfa6c34d05105dcc6682ad 20-May-2013 Theodore Ts'o <tytso@mit.edu> e2fsck: fix gcc -Wall nits

Perhaps the most serious fix up is a type-punning warning which could
result in miscompilation with overly enthusiastic compilers.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
26991d026e4b555229a4466ae4d003420321bbd2 05-May-2013 Theodore Ts'o <tytso@mit.edu> e2fsck: don't use IO_FLAG_EXCLUSIVE for read-only root file systems

When opening the external journal, use the same logic to decide
whether or not to open the file system with EXT2_FLAG_EXCLUSIVE found
in main().

Otherwise, it's not posible to use e2fsck when the root file system is
using an external journal.

Reported-by: Calvin Owens <jcalvinowens@gmail.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
63b3913dbc0bc7cdf8a63f3bdb0c8d7d605e9a40 11-Jun-2012 Theodore Ts'o <tytso@mit.edu> e2fsck: correctly propagate error from journal to superblock

If the file system is mounted read-only after a file system error has
been detected, the fact that an error occurred is written to the
journal. This is important because while the journal is getting
replayed, the error indication in the superblock may very well get
overwritten.

Unfortunately, the code to propagate the error indication from the
journal to superblock was broken because this was being done before
the old file system handle is thrown away and the file system is
re-opened to ensure that no stale data is in the file system handle.
As a result, the error indication in the superblock was never written
out.

To fix this, we need to move the check if the journal's error
indicator has been set after the file system has been freed and
re-open.

Reported-by: Ken Sumrall <ksumrall@google.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
6d75685e2b76f4099589ad33732cf59f279b5d65 01-Jun-2012 Theodore Ts'o <tytso@mit.edu> e2fsck: handle an already recovered journal with a non-zero s_error field

If a file system was remounted read-only after a file system
corruption is detected, and then that file system is mounted and
unmounted by the kernel, the journal would have been recovered, but
the kernel currently leaves the s_errno field still set. This is
arguably a bug, since it has already propgated the non-zero s_errno
field to the file system superblock, where it will be retained until
e2fsck has been run.

However, e2fsck should handle this case for existing kernel by
checking the journal superblock's s_errno field even if journal
recovery is not required.

Without this commit, e2fsck would not notice anything wrong with the
file system, but a subsequent mount of the file system by the kernel
would mark the file system's superblock as needing checking (since the
journal's s_errno field would still be set), resulting an full e2fsck
run at the next reboot, which would find nothing wrong --- and then
when the file system was mounted, the whole cycle would repeat again.

I had seen reports of this in the past, but it wasn't until recently
that I realized exactly how this had come about, since normally e2fsck
would be run automatically before the file system is mounted again,
thus avoiding this problem. However, a user using a rescue CD who
didn't run e2fsck before mounting the a file system in this condition
could trigger this situation, and unfortunately, with previous
versions of e2fsprogs and the kernel, there would be no way out no
matter what the user tried to do.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
3b693d0b03569795d04920a04a0a21e5f64ffedc 22-May-2012 Theodore Ts'o <tytso@mit.edu> e2fsck: fix 64-bit journal support

64-bit journal support was broken; we weren't using the high bits from
the journal descriptor blocks! We were also using "unsigned long" for
the journal block numbers, which would be a problem on 32-bit systems.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
0f5eba7501f467f757792ee449d16c9259b994fd 24-Sep-2011 Andreas Dilger <adilger@whamcloud.com> ext2fs: add multi-mount protection (INCOMPAT_MMP)

Multi-mount protection is feature that allows mke2fs, e2fsck, and
others to detect if the filesystem is mounted on a remote node (on
SAN disks) and avoid corrupting the filesystem. For e2fsprogs this
means that it checks the MMP block to see if the filesystem is in use,
and marks the filesystem busy while e2fsck is running on the system.

This is useful on SAN disks that are shared between high-availability
servers, or accessible by multiple nodes that aren't in HA pairs. MMP
isn't intended to serve as a primary HA exclusion mechanism, but as a
failsafe to protect against user, software, or hardware errors.

There is no requirement that e2fsck updates the MMP block at regular
intervals, but e2fsck does this occasionally to provide useful
information to the sysadmin in case of a detected conflict.

For the kernel (since Linux 3.0) MMP adds a "heartbeat" mechanism to
periodically write to disk (every few seconds by default) to notify
other nodes that the filesystem is still in use and unsafe to modify.

Originally-by: Kalpak Shah <kalpak@clusterfs.com>

Signed-off-by: Johann Lombardi <johann@whamcloud.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
d1154eb460efe588eaed3d439c1caaca149fa362 18-Sep-2011 Theodore Ts'o <tytso@mit.edu> Shorten compile commands run by the build system

The DEFS line in MCONFIG had gotten so long that it exceeded 4k, and
this was starting to cause some tools heartburn. It also made "make
V=1" almost useless, since trying to following the individual commands
run by make was lost in the noise of all of the defines.

So fix this by putting the configure-generated defines in lib/config.h
and the directory pathnames to lib/dirpaths.h.

In addition, clean up some vestigal defines in configure.in and in the
Makefiles to further shorten the cc command lines.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
931b58e1cb2158c1f5218059cce92e94917ef485 11-Jun-2011 Andreas Dilger <adilger@whamcloud.com> ext2fs: Handle internal journal over 2^32 bytes

The write_journal_inode() code is only setting the low 32-bit i_size
for the journal size, even though it is possible to specify a journal
up to 10M blocks in size. Trying to create a journal larger than 2GB
will succeed, but an immediate e2fsck would fail. Store i_size_high
for the journal inode when creating it, and load it upon access.

Use s_jnl_blocks[15] to store the journal i_size_high backup. This
field is currently unused, as EXT2_N_BLOCKS is 15, so it is using
s_jnl_blocks[0..14], and i_size is in s_jnl_blocks[16].

Rename the "size" argument "num_blocks" for the journal creation functions
to clarify this parameter is in units of filesystem blocks and not bytes.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
0358c9f9a43ce0ef33f7891ca9f9d67abd3b4853 13-Dec-2010 Theodore Ts'o <tytso@mit.edu> Merge branch 'maint' into next

Conflicts:
e2fsck/pass4.c
misc/dumpe2fs.c
resize/online.c
8718359b4057bf2b998f4ac6125e33f20efe60cb 26-Sep-2010 Theodore Ts'o <tytso@mit.edu> e2fsck: Open the external journal in exclusive mode

This prevents accidentally replaying and resetting the journal while
it is mounted, due to an accidental attempt to run e2fsck on an LVM
snapshot of a file system with an external journal.

Addresses-Debian-Bug: #587531

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
6dc64392c052839f373b7bbbb58efa3048bfb355 13-Jun-2010 Valerie Aurora Henson <vaurora@redhat.com> e2fsck: Fix up to be 64-bit block number safe

Signed-off-by: Valerie Aurora Henson <vaurora@redhat.com>
Signed-off-by: Nick Dokos <nicholas.dokos@hp.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
97d26ce9e3589e9f5fa17014467a9730a884d158 07-Jun-2010 Theodore Ts'o <tytso@mit.edu> Merge branch 'maint' into next

Conflicts:
e2fsck/journal.c
e2fsck/pass1.c
e2fsck/pass2.c
misc/mke2fs.c
5750e5f9246ead0bc2af7da0cb5bcdfc916cace6 13-Apr-2010 Eric Sandeen <sandeen@redhat.com> e2fsck: mark sparse journal as invalid

For a filesystem that fails with:

journal_bmap: journal block not found at offset 7334 on loop0
JBD: bad block at offset 7334

e2fsck won't actually fix this; it will mark the fs as clean,
so it will mount, but it does not fix that block, and when the
journal reaches this point again it will fail again.

The following simple change to process_journal_block() might be
a little drastic; it will clear & recreate the journal inode if
it's sparse - i.e. if it gets block 0.

I suppose we could be more complicated and try to replay the journal
up to the error, but I'm not sure it's worth it since we're fscking
it anyway.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
d7cca6b06f366f998ed43346f9b6fca9e163692f 26-Oct-2009 Valerie Aurora Henson <vaurora@redhat.com> Convert to use block group accessor functions

Convert direct accesses to use the following block group accessor
functions: ext2fs_block_bitmap_loc(), ext2fs_inode_bitmap_loc(),
ext2fs_inode_table_loc(), ext2fs_bg_itable_unused(),
ext2fs_block_bitmap_loc_set(), ext2fs_inode_bitmap_loc_set(),
ext2fs_inode_table_loc_set(), ext2fs_bg_free_inodes_count(),
ext2fs_ext2fs_bg_used_dirs_count(), ext2fs_bg_free_inodes_count_set(),
ext2fs_bg_free_blocks_count_set(), ext2fs_bg_used_dirs_count_set()

Signed-off-by: Valerie Aurora Henson <vaurora@redhat.com>
Signed-off-by: Nick Dokos <nicholas.dokos@hp.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
4efbac6fed75c29d3d5f1b676b932754653a2ac5 08-Sep-2009 Valerie Aurora Henson <vaurora@redhat.com> Convert uses of super->s_*_blocks_count to ext2fs_*_blocks_count()

Signed-off-by: Valerie Aurora Henson <vaurora@redhat.com>
Signed-off-by: Nick Dokos <nicholas.dokos@hp.com>
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
24a117abd0340d247befbf7687ffb70547fdf218 08-Sep-2009 Valerie Aurora Henson <vaurora@redhat.com> Convert to use io_channel_read_blk64() and io_channel_write_blk64()

Signed-off-by: Valerie Aurora Henson <vaurora@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
c5d2f50dee996e48e96066155f85d7c925fcba0d 23-Aug-2009 Valerie Aurora Henson <vaurora@redhat.com> e2fsck: Convert e2fsck to new bitmap interface

Signed-off-by: Valerie Aurora Henson <vaurora@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
27a407df546eafa54f3f50c470e3a0a4c788fae5 26-May-2009 Theodore Ts'o <tytso@mit.edu> e2fsck: Fix journal replay bug which reverts changes to the bg descriptors

Fix a regression in e2fsprogs 1.41.5 which would undo updates to the
block group descriptors after a journal replay, caused by commit
b7c5b403. We now use ext2fs_free() instead of ext2fs_close() to make
sure we the library will never try to write out superblock or block
group descriptors.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
e35d548b59e24af9f7fc18396e8880df96d1bc51 03-Jan-2009 Theodore Ts'o <tytso@mit.edu> e2fsck: Fix journal replay for block sizes greater than 8k

E2fsck was using a fixed-size 8k buffer for replaying blocks from the
journal. So attempts to replay a journal on filesystems greater than
8k would cause e2fsck to crash with a segfault.

Thanks to Miao Xie <miaox@cn.fujitsu.com> for reporting this problem.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
efc6f628e15de95bcd13e4f0ee223cb42115d520 28-Aug-2008 Theodore Ts'o <tytso@mit.edu> Remove trailing whitespace for the entire source tree

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
185c4aeaf23d48375e3506218305031663203d0f 23-May-2008 Theodore Ts'o <tytso@mit.edu> e2fsck: Add support to check journal checksums

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
49a7360ba6b986242d9f0f33e102291d2e0dfb47 22-Oct-2007 Jose R. Santos <jrs@us.ibm.com> Make e2fsck uninit block group aware

This patch has all the necesary pieces to open and fix filesystems created
with the uninit block group feature.

Signed-off-by: Jose R. Santos <jrs@us.ibm.com>
Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
2628a1d3e1e581512d136486768685542d2649b1 06-Oct-2007 Theodore Ts'o <tytso@mit.edu> Merge branch 'maint'
0cfce7f749ea519522929d91e705cf90518594c4 06-Oct-2007 Theodore Ts'o <tytso@mit.edu> e2fsck: update the backup superblocks if the feature bitmasks are changed

If e2fsck adds or deletes any of the feature bitmasks, clear
EXT2_FLAG_MASTER_SB_ONLY so the backup superblocks are updated when
e2fsck finishes.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
2eae093081a097a0a611fe2817e1533825dfdd86 11-Aug-2007 Theodore Ts'o <tytso@mit.edu> Clean up applications to not use EXT2FS_ENABLE_SWAPFS or EXT2_FLAG_SWAP_BYTES

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
051afbe0d7f49429c26d2a7a33f1f3857d07c3d0 21-Jun-2007 Theodore Ts'o <tytso@mit.edu> e2fsck: Check the all of journal blocks for validity

The original code only checked the direct blocks to make sure the
journal inode was sane. Unfortunately, if some or all of the indirect
or doubly indirect blocks were corrupted, this would not be caught.
Thanks to Andreas Dilger and Kalpak Shah for noticing this problem.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
ded28ac2ab67300f39783184a8f8930b548fc5f0 21-Jun-2007 Kalpak Shah <kalpak@clusterfs.com> Write the updated journal inode if s_jnl_blocks was successfully used

If the journal inode was corrected from s_jnl_blocks, write the fixed
journal inode back to disk.

Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
/external/e2fsprogs/e2fsck/journal.c
5107d0d196b9c51cf18380b6996b1074afe51df2 21-Jun-2007 Kalpak Shah <kalpak@clusterfs.com> Recreate journal that had been removed previously due to corruption

If the journal had been removed because it was corrupt, the
E2F_FLAG_JOURNAL_INODE flag will be set. If this flag is set, then
recreate the filesystem after checking the filesystem.

Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
/external/e2fsprogs/e2fsck/journal.c
058ad1c70c9a097d282270c6f76d3c3493e15fe2 19-Jun-2007 Theodore Ts'o <tytso@mit.edu> Don't write changes to the backup superblocks by default

This patch changes ext2fs_open() to set EXT2_FLAG_MASTER_SB_ONLY by
default. This avoids some problems in e2fsck (reported by Jim Garlick)
where a corrupt journal can end up writing the bad superblock to the
backups. In general, only e2fsck (after the filesystem is clean),
tune2fs, and resize2fs should change the backup superblocks by default.
Most callers of ext2fs_open() should not be touching anything where the
backups should be touched. So let's change the defaults to avoid
potential problems.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
2bfe0bdba37bfd0e4378e855377ebaa823846ea3 29-Mar-2007 Brian Behlendorf <behlendorf1@llnl.gov> [COVERITY] Fix (error case only) memory leak in e2fsck_get_journal

Coverity ID: 43: Resource Leak

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
/external/e2fsprogs/e2fsck/journal.c
642935c082ca22e1186fc9926fe06e4207d5ab56 15-Nov-2006 Theodore Ts'o <tytso@mit.edu> Fix misc. gcc -Wall complaints in the misc and e2fsck directories

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
2aa362f54a9a486ffd495028b95532897551d619 14-May-2006 Theodore Ts'o <tytso@mit.edu> Fix memory leak in e2fsck's error paths

Add missing brelse() calls to avoid memory leaks in error paths. (Thanks
to Michael C. Thompson for pointing these out; they were originally
found using Coverity.)

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
b1c52b26a44efeb366402985763c242a4b21aeb1 10-Mar-2006 Theodore Ts'o <tytso@mit.edu> Enhance e2fsck so it can fix external journal hint in the superblock

Check to see if the superblock hint for the external journal needs to
be updated, and if so, offer to update it. (Addresses Debian Bug:
#355644)

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
8dceb92407f751d1a8aecd4bfb36d1fe2dc3cf9a 25-Sep-2005 Theodore Ts'o <tytso@mit.edu> E2fsck: fix future times in the superblock's last mount or last write fields

Detect if the superblock's last mount field or last write field is in
the future, and offer to fix if so. (Addresses Debian Bug #327580)

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/journal.c
1f3ad14a5ad5df3ac4012d41ef5d76411cd8fff3 14-Apr-2005 Theodore Ts'o <tytso@mit.edu> Use a centrally stored current time for "now" which
can be overridden using the E2FSCK_TIME environment
variable, for better reproducibility for regression tests.
/external/e2fsprogs/e2fsck/journal.c
6e4fbbeb500d6aa7aaa193f689356c487d461ede 04-Oct-2004 Richard Mortimer <richm@oldelvet.org.uk> Attempt recovery if the journal contains illegal blocks
/external/e2fsprogs/e2fsck/journal.c
93effaa456e490c6dfff08287c8f5c652cac8469 27-May-2004 Theodore Ts'o <tytso@mit.edu> Fixed potential ordering constraint problem in e2fsck's journal
recovery code by implementing the sync_blockdev function. Thanks to
Junfeng Yang from the Stanford Metacompilation group for pointing this
out.
/external/e2fsprogs/e2fsck/journal.c
b34cbddbd66baedc163d36dd281b63ef478f547a 28-Dec-2003 Matthias Andree <matthias.andree@gmx.de> Re-add FreeBSD support.
Tested on FreeBSD 5.2-CURRENT as of 2003-12-28.
Tested on FreeBSD 4.9-STABLE as of 2003-12-27.
/external/e2fsprogs/e2fsck/journal.c
b969b1b8a5c13992cadb026114731958644540d8 28-Dec-2003 Matthias Andree <matthias.andree@gmx.de> Fix more compiler warnings.
/external/e2fsprogs/e2fsck/journal.c
544349270e4c74a6feb971123884a8cf5052a7ee 07-Dec-2003 Theodore Ts'o <tytso@mit.edu> Fix gcc -Wall nitpicks
/external/e2fsprogs/e2fsck/journal.c
27479eb2270c344a0042b4c492337b67a547c393 21-Aug-2003 Theodore Ts'o <tytso@mit.edu> journal.c (e2fsck_move_ext3_journal): When moving the journal or
backing up the journal inode, make sure it gets written to
all the superblocks.
/external/e2fsprogs/e2fsck/journal.c
a435ec3449694a8fa299337197cc09624960a3a6 21-Aug-2003 Theodore Ts'o <tytso@mit.edu> Add support for backing up the journal inode location in the
superblock. E2fsck will automatically save the journal information
in the superblock if it is not there already, and will use it if the
journal inode appears to be corrupted. ext2fs_add_journal_inode()
will also save the backup information, so that new filesystems
created by mke2fs and filesystems that have journals added via
tune2fs will also have journal location written to the superblock as
well. Debugfs's logdump command has been enhanced so that it can
use the journal information in the superblock.

The debugfs man page has been improved to more fully describe the
logdump command.

Added two new functions, ext2fs_file_open2() and
ext2fs_inode_io_intern2() which take a pointer to an inode structure;
this is needed so that e2fsck and debugfs can synthesize a
fake journal inode and use it to access the journal.
/external/e2fsprogs/e2fsck/journal.c
c4e3d3f374b409500e3dd05c0b0eca6ac98a6b4e 01-Aug-2003 Theodore Ts'o <tytso@mit.edu> ext2fs_getmem(), ext2fs_free_mem(), and ext2fs_resize_mem()
all now take a 'void *' instead of a 'void **' in order to
avoid pointer aliasing problems with GCC 3.x.
/external/e2fsprogs/e2fsck/journal.c
f364093b1956def0b0f1d037852cbb645284d5f2 02-Mar-2003 Theodore Ts'o <tytso@mit.edu> Update debugfs and e2fsck to use the blkid library.
/external/e2fsprogs/e2fsck/journal.c
5e72cdbeb9cfe32ddff1293cc672dcf66f4f2d5b 08-Nov-2002 Theodore Ts'o <tytso@mit.edu> unix.c (PRS), journal.c: Set the default level of journal
debugging to be 0, and allow the user to set the level of
journal debugging by using the E2FSCK_JBD_DEBUG
environment variable.
/external/e2fsprogs/e2fsck/journal.c
3e69906495d5898849a6154b0311b5d4a84a27ae 14-Oct-2002 Theodore Ts'o <tytso@mit.edu> Fix gcc -Wall nits.

Fix format bug if NLS is in use.

Add extra so that the info directory looks OK on OpenWall.
/external/e2fsprogs/e2fsck/journal.c
546a1ff18cc912003883ff67ba3e87c69f700fc4 08-Mar-2002 Theodore Ts'o <tytso@mit.edu> Fix various gcc -Wall complaints.
/external/e2fsprogs/e2fsck/journal.c
f2d5c937034e6c07391549ef6d46b2c8db086c85 07-Mar-2002 Theodore Ts'o <tytso@mit.edu> Fixed the journal handling so that an offer is made to clear the
journal filesystem in all cases.

Fixed a bug in e2fsck which caused it to give spurious I/O manager
bad messages right before crashes.
/external/e2fsprogs/e2fsck/journal.c
d1a2182a1878b1dc6c0996ed1a6c5b108f6626f9 22-Feb-2002 Theodore Ts'o <tytso@mit.edu> Cleaned up journal handling code in e2fsck.

Fixed up two minor memory leaks.
/external/e2fsprogs/e2fsck/journal.c
d37066a9fa14ff3c0e7f4ea95e07204fce95f41a 22-Dec-2001 Theodore Ts'o <tytso@mit.edu> Give the opportunity for e2fsck to run the journal even if
recovery flag is cleared. If we're using a backup
superblock, run the journal by default.
/external/e2fsprogs/e2fsck/journal.c
8cf93332d180e6929d73cd8c855c3a83d6a6648c 16-Dec-2001 Theodore Ts'o <tytso@mit.edu> Fix e2fsck's handling of external journals,and update journal
recovery files from 2.4.17-pre8.
/external/e2fsprogs/e2fsck/journal.c
b3b3d465b1e833af355a41c1c470d8fa3592bc26 30-Nov-2001 Gabriel Paubert <paubert@iram.es> journal.c: fix an endianness bug.
f_badorphan: revert previous, erroneous change.
/external/e2fsprogs/e2fsck/journal.c
6a138ed42a394e29ace844213db2c4f893fe84d0 09-Nov-2001 Andreas Dilger <adilger@clusterfs.com> Allow a single user for internal journals (the current filesystem)
since this is how the filesystem is created.
/external/e2fsprogs/e2fsck/journal.c
62e3e7fe4f32c2186e848f37b7f977835975413e 07-Oct-2001 Theodore Ts'o <tytso@mit.edu> journal.c (clear_v2_journal_fields, e2fsck_journal_load): If the
V2 fields are set on a V1 journal superblock, or an
internal V2 journal has s_nr_users is non-zero, clear the
entire journal superblock beyond the V1 superblock. This
fixes botched V1->V2 updates.

problem.c, problem.h (PR_0_CLEAR_V2_JOURNAL): Add new problem code.

f_bad_local_jnl: New test which tests for a V2 journal with bad
fields caused by a botched V1->V2 upgrade.
/external/e2fsprogs/e2fsck/journal.c
773fd8a1d4202af708a37bdc7754134e6fdcfe22 07-Oct-2001 Theodore Ts'o <tytso@mit.edu> e2fsck.h, journal.c (e2fsck_move_ext3_journal): Add new function
which will automatically relocate the ext3 journal from a
visible file to an invisible journal file if the
filesystem has been opened read/write.

super.c (check_super_block): Add call to e2fsck_move_ext3_journal

problem.c, problem.h (PR_0_MOVE_JOURNAL, PR_0_ERR_MOVE_JOURNAL):
Add new problem codes.
/external/e2fsprogs/e2fsck/journal.c
c0a083fac3b8f03ae15f5bf30c230c015538051e 07-Aug-2001 Theodore Ts'o <tytso@mit.edu> * journal.c (recover_ext3_journal): If s_errno is set in the
journal superblock, set the EXT2_ERROR_FS flag in the
filesystem superblock after the journal is run.
/external/e2fsprogs/e2fsck/journal.c
6d222f3217b11c9b27f92b4aafe47bfeb59b81fa 29-Jul-2001 Theodore Ts'o <tytso@mit.edu> Fix memory leaks in e2fsck's journal.c, and remove some cases
which look like memory leaks in unix.c so we can more easily find
the true memory leaks.
/external/e2fsprogs/e2fsck/journal.c
adee8d75db09dc8ecb2a32f59a8c64d3f4c64b0e 23-Jul-2001 Theodore Ts'o <tytso@mit.edu> Add support for use of an external journal (so long as the external
journal only has one filesystem).
/external/e2fsprogs/e2fsck/journal.c
0f2cfe25796bd53b920b1607410bf94251f17fbc 10-Jul-2001 Theodore Ts'o <tytso@mit.edu> Fix really stupid typo.
/external/e2fsprogs/e2fsck/journal.c
3c6b8977d44c66f0a50dd77c18a78b57b1022f8c 10-Jul-2001 Theodore Ts'o <tytso@mit.edu> Speed up journal recovery in userspace by avoiding a pointless
unconditional ext2_flush() call. Also made ext2_flush() more
efficient when the superblock is modified after the filesystem has
been flushed, and make it clear the superblock dirty flag
after doing the superblock/block group descriptor flush.
/external/e2fsprogs/e2fsck/journal.c
2f686ace1c8e2f680ffd450d143cdd01a649687a 02-Jun-2001 Theodore Ts'o <tytso@mit.edu> ChangeLog, journal.c, problem.c, problem.h:
problem.c, problem.h: Change PR_0_JOURNAL_UNSUPP_INCOMPAT and
PR_0_JOURNAL_UNSUPP_ROCOMPAT so they aren't fatal errors, but prompt
to see if the user should abort. Removed the
PR_0_JOURNAL_RESET_COMPAT problem code.
journal.c (e2fsck_journal_load): If there are incompatible journal
flags, just return an error code.
(e2fsck_check_ext3_journal): If e2fsck_journal_load returns an error
code indicating that there are incompatible journal flag, check to see
if we should abort, and then offer to clear the journal.
/external/e2fsprogs/e2fsck/journal.c
561cd4dd605fd8cfe593bd67db3d77c9ddbf79af 25-May-2001 Theodore Ts'o <tytso@mit.edu> ChangeLog, journal.c:
journal.c (e2fsck_journal_reset_super): Remove extraneous line
/external/e2fsprogs/e2fsck/journal.c
c7f23364fd6d8d25d74e51ba5f342fc2230048d8 24-May-2001 Theodore Ts'o <tytso@mit.edu> ChangeLog, journal.c, problem.c, problem.h:
journal.c (e2fsck_journal_reset_super): Fix bug; the reset journal
wasn't getting written out to disk since the dirty bit wasn't being
set on the buffer.
(e2fsck_journal_load): Don't print an error message if the journal
version number is wrong; just return a error code reflecting this
fact. If the block type in the journal superblcok is obviously not a
version number, report the journal is corrupted.
(e2fsck_check_ext3_journal): On an unsupported journal version, prompt
to abort by default, but then offer a chance to clear the journal as
corrupt.
problem.c, problem.h (PR_0_JOURNAL_UNSUPP_VERSION): Added new problem code.
/external/e2fsprogs/e2fsck/journal.c
424cd2beb7c40a3e4cf96b5bf28b24e48554a754 14-May-2001 Theodore Ts'o <tytso@mit.edu> ChangeLog, e2fsck.h, journal.c, problem.c, problem.h, super.c:
super.c (check_super_block): Be more strict on checking
s_r_blocks_count superblock field.
problem.c, problem.h (PR_0_JOURNAL_UNSUPP_ROCOMPAT,
PR_0_JOURNAL_UNSUPP_INCOMPAT, PR_0_JOURNAL_RESET_COMPAT): New problem
codes.
journal.c (e2fsck_journal_load): Use a problem code to report
unsupported feature flags. There is code to clear unsupported flags,
but since this is dangerous, it's not allowed in the problem code
table.
journal.c (e2fsck_journal_reset_super): initialize the journal
sequence number to a random value to avoid recovering bad transactions
from a corrupt journal.
/external/e2fsprogs/e2fsck/journal.c
328a5ce4ae7bd30a3a57094531bcb6688207415e 13-May-2001 Theodore Ts'o <tytso@mit.edu> ChangeLog, journal.c:
journal.c: Code cleanup; initialize journal_enable_debug using an
initializer.
/external/e2fsprogs/e2fsck/journal.c
15986f7931e1fe65621b4defb5522c9bf8da76ef 29-Mar-2001 Theodore Ts'o <tytso@mit.edu> ChangeLog, jfs_user.h, journal.c:
journal.c (mark_buffer_uptodate): Add emulation of kernel function
mark_buffer_uptodate.
/external/e2fsprogs/e2fsck/journal.c
e9e2a20a11226f50a179f4686826de26cb9bdfaa 20-Feb-2001 Theodore Ts'o <tytso@mit.edu> journal.c:
Fix stupid typo.
/external/e2fsprogs/e2fsck/journal.c
d051521278790e5fc7d97d59bb3be6b662a76365 13-Feb-2001 Theodore Ts'o <tytso@mit.edu> ChangeLog, journal.c:
journal.c (e2fsck_run_ext3_journal): Force a flush of the filesystem
and io_channel before replaying the journal.
/external/e2fsprogs/e2fsck/journal.c
4e009f6a2e86fa4936a14330f379a8cfcbf0ce86 08-Feb-2001 Theodore Ts'o <tytso@mit.edu> journal.c:
Fix minor typo in C comment
/external/e2fsprogs/e2fsck/journal.c
a9ca2016e14b5b56e5f0b61a73d52c4caee718bc 12-Jan-2001 Theodore Ts'o <tytso@mit.edu> ChangeLog, pass1.c, problem.c, problem.h:
pass1.c (e2fsck_pass1): Cap the maximum legal size of a file by the
limit caused by the fact that i_blocks is in 512 byte units, and that
the Linux buffer cache also fundamentally assumes 512 byte sectors.
Make sure that the journal inode is a regular file, and when clearing
an unused journal inode, make sure the icount db is updated.
problem.c, problem.h (PR_1_JOURNAL_BAD_MODE): Add new problem code.
ChangeLog, journal.c:
journal.c (e2fsck_journal_fix_unsupported_super): Remove unused
function. Add FIXME notes to e2fsck_get_journal(), from Andreas
Dilger.
/external/e2fsprogs/e2fsck/journal.c
6a6d3d44d6e90539007b8d32e6cb76f62a4af163 12-Jan-2001 Theodore Ts'o <tytso@mit.edu> ChangeLog, journal.c:
journal.c: Make sure all functions which return an error code use the
errcode_t return type, and not "int"
(e2fsck_journal_release): Add new parameter, "drop", which is used
when we just want to deallocate the journal without trying to write
out any changes.
(mark_buffer_clean): New function e2fsck_check_ext3_journal): If we
fail loading the journal, make sure we free all memory associated with
it.
(recover_ext3_journal): If we fail to load the journal or initialize
the revoke data structures, make sure we free all memory associated
with the journal.
/external/e2fsprogs/e2fsck/journal.c
7e92dfae9e60947a20a2078b7871b073441dac44 12-Jan-2001 Theodore Ts'o <tytso@mit.edu> ChangeLog, journal.c, problem.c:
journal.c (e2fsck_journal_fix_bad_inode): Set pctx->ino to the bad
journal number.
problem.c (PR_0_JOURNAL_BAD_INODE): Use pctx->ino instead of pctx->num
when printing the bad journal inode number.
/external/e2fsprogs/e2fsck/journal.c
86c627ec1136446409a0170d439e60c148e6eb48 11-Jan-2001 Theodore Ts'o <tytso@mit.edu> Many files:
dirinfo.c, e2fsck.h, emptydir.c, iscan.c, jfs_user.h, journal.c,
message.c, pass1.c, pass1b.c, pass2.c, pass3.c, pass4.c, pass5.c,
problem.h, scantest.c, super.c, swapfs.c: Change ino_t to ext2_ino_t.
/external/e2fsprogs/e2fsck/journal.c
53ef44c40a3e425d2c700d8fd77a6b655aa121fe 06-Jan-2001 Theodore Ts'o <tytso@mit.edu> Many files:
journal.c, pass1.c, pass1b.c, pass3.c, recovery.c, revoke.c, super.c,
unix.c, util.c: Fix random gcc -Wall complaints.
jfs_user.h: Use more sophisticated inline handling to allow building
with --enable-gcc-wall
/external/e2fsprogs/e2fsck/journal.c
8c2dc52180373f4e7b12e92669db59b1a52e2153 03-Jan-2001 Theodore Ts'o <tytso@mit.edu> journal.c:
Fix typo in comment.
/external/e2fsprogs/e2fsck/journal.c
d3f35b645154ea65ff7c955c862a796e2f281927 03-Jan-2001 Theodore Ts'o <tytso@mit.edu> ChangeLog, journal.c:
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.
/external/e2fsprogs/e2fsck/journal.c
5dd8f963d04fa4099a003cb3b13ffae05ab29210 01-Jan-2001 Theodore Ts'o <tytso@mit.edu> ChangeLog, journal.c, pass1.c, super.c, unix.c:
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.
/external/e2fsprogs/e2fsck/journal.c
b2f93192a1701855d4f5f05f0087c45e92a35681 30-Dec-2000 Theodore Ts'o <tytso@mit.edu> ChangeLog, journal.c, problem.h:
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)
/external/e2fsprogs/e2fsck/journal.c
9b5657591b1db9b82fe433f3f90e496f3df6a851 13-Dec-2000 Theodore Ts'o <tytso@mit.edu> ChangeLog, super.c:
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.)
/external/e2fsprogs/e2fsck/journal.c
f43650c30821900a6a7c9bdba72bb5f6cee6c484 09-Dec-2000 Theodore Ts'o <tytso@mit.edu> ChangeLog, journal.c:
journal.c (e2fsck_check_ext3_journal): If JFS_DEBUG is defined at the
top level, set the JFS debuging level to 2.
/external/e2fsprogs/e2fsck/journal.c
0e8a9560d89dd9cca73037a59efa93e46abdccda 09-Dec-2000 Theodore Ts'o <tytso@mit.edu> Many files:
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.
/external/e2fsprogs/e2fsck/journal.c
241f224fb249243af20037d2145a1a0fe0f81581 26-Oct-2000 Theodore Ts'o <tytso@mit.edu> .del-jfs.h~fa6593e8, ChangeLog, jfs_compat.h, journal.c:
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)
/external/e2fsprogs/e2fsck/journal.c
8394902e04e64ed10ca81e869892c00143ee4931 25-Oct-2000 Theodore Ts'o <tytso@mit.edu> ChangeLog, journal.c, problem.c, problem.h, super.c:
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.
/external/e2fsprogs/e2fsck/journal.c
99a2cc969fb47e8c87965aa9fb93cabf6fe4ac1e 22-Aug-2000 Theodore Ts'o <tytso@mit.edu> ChangeLog, jfs_compat.h, journal.c, pass3.c:
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.
/external/e2fsprogs/e2fsck/journal.c
ecf1b7767e1772f4c6dba8f02026057ed05397bd 21-Aug-2000 Theodore Ts'o <tytso@mit.edu> ChangeLog, journal.c, message.c, problem.c, problem.h, super.c:
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.
/external/e2fsprogs/e2fsck/journal.c
80bfaa3e40ae6ab00cc3d4d1f4c0eeefce0b1a96 18-Aug-2000 Theodore Ts'o <tytso@mit.edu> Many files:
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
/external/e2fsprogs/e2fsck/journal.c
3b5386dca8e0008e13351be5de6323576329aa58 14-Aug-2000 Theodore Ts'o <tytso@mit.edu> Many files:
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.
/external/e2fsprogs/e2fsck/journal.c
17390c047f5470eec005c5461a7926d03d6bbbe7 07-Jul-2000 Theodore Ts'o <tytso@mit.edu> ChangeLog, Makefile.in, e2fsck.h, journal.c, unix.c:
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.
/external/e2fsprogs/e2fsck/journal.c