History log of /external/e2fsprogs/e2fsck/problem.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a876a33317cbcc505a596014f5115861e54c9550 06-Mar-2014 JP Abgrall <jpa@google.com> e2fsck: remove unneeded type redefinitions

Or else ...:
In file included from e2fsck/pass5.c:21:
e2fsck/problem.h:13: error: redefinition of typedef ‘__u32’
lib/ext2fs/ext2_types.h:56: error: previous declaration of ‘__u32’ was here
e2fsck/problem.h:14: error: redefinition of typedef ‘errcode_t’
lib/et/com_err.h:22: error: previous declaration of ‘errcode_t’ was here

Change-Id: I0a1ff3b2455bfbaf1e3d0940034a7dbcc231a0f7
Signed-off-by: JP Abgrall <jpa@google.com>
/external/e2fsprogs/e2fsck/problem.h
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/problem.h
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/problem.h
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/problem.h
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/problem.h
27b2297d5726623c2d119c671a0e1778aae6010a 12-Oct-2013 Darrick J. Wong <darrick.wong@oracle.com> e2fsck: enable extents on all 64bit filesystems

Since it's impossible to address all blocks of a 64bit filesystem
without extents, have e2fsck turn on the feature if it finds (64bit &&
!extents).

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
d3f32c2db8f11c87aa7939d78e7eb4c373f7034f 07-Jun-2013 David Jeffery <djeffery@redhat.com> e2fsck: detect invalid extents at the end of an extent-block

e2fsck does not detect extents which are outside their location in the
extent tree. This can result in a bad extent at the end of an extent-block
not being detected.

From a part of a dump_extents output:

1/ 2 37/ 68 143960 - 146679 123826181 2720
2/ 2 1/ 2 143960 - 146679 123785816 - 123788535 2720
2/ 2 2/ 2 146680 - 147583 123788536 - 123789439 904 Uninit <-bad extent
1/ 2 38/ 68 146680 - 149391 123826182 2712
2/ 2 1/ 2 146680 - 147583 18486 - 19389 904
2/ 2 2/ 2 147584 - 149391 123789440 - 123791247 1808

e2fsck does not detect this bad extent which both overlaps another, valid
extent, and is invalid by being beyond the end of the extent above it in
the tree.

This patch modifies e2fsck to detect this invalid extent and remove it.

Signed-off-by: David Jeffery <djeffery@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
/external/e2fsprogs/e2fsck/problem.h
789bd401c3bce85d3c2ae4504ca62509aa0a8b88 20-Dec-2012 Eric Sandeen <sandeen@redhat.com> e2fsck: fix incorrect interior node logical start values

An index node's logical start (ei_block) should
match the logical start of the first node (index
or leaf) below it. If we find a node whose start
does not match its parent, fix all of its parents
accordingly.

If it finds such a problem, we'll see:

Pass 1: Checking inodes, blocks, and sizes
Interior extent node level 0 of inode 274258:
Logical start 3666 does not match logical start 4093 at next level. Fix<y>?

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
7943ccf5f2fa76f1dc164ddd1ffd5044a1dca31a 24-Apr-2012 Aditya Kali <adityakali@google.com> e2fsck,libquota: Update quota only if its inconsistent

Currently fsck recomputes quotas and overwrites quota files
whenever its run. This causes unnecessary modification of
filesystem even when quotas were never inconsistent. We also
lose the limits information because of this. With this patch,
e2fsck compares the computed quotas to the on-disk quotas
(while updating the in-memory limits) and writes out the
quota inode only if it is inconsistent.

Signed-off-by: Aditya Kali <adityakali@google.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
010dc7b90d97b93907cbf57b3b44f1c1cad234f6 23-Mar-2012 Lukas Czerner <lczerner@redhat.com> e2fsck: remove EXT4_EOFBLOCKS_FL flag handling

We've decided to remove EOFBLOCKS_FL from the ext4 file system entirely,
because it is not actually very useful and it is causing more problems
than it solves. We're going to remove it from e2fsprogs first and then
after the new e2fsprogs version is common enough we can remove the
kernel part as well.

This commit changes e2fsck to not check for EOFBLOCKS_FL. Instead we
simply search for initialized extents past the i_size as this should not
happen. Uninitialized extents can be past the i_size as we can do
fallocate with KEEP_SIZE flag.

Also remove the EXT4_EOFBLOCKS_FL from lib/ext2fs/ext2_fs.h since it is
no longer needed.

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
010c49cf499738c7a06de13077f31f2a12ecadeb 22-Mar-2012 Theodore Ts'o <tytso@mit.edu> e2fsck: report ext2fs_open2() and ext2fs_check_desc() errors

Print the actual errors returned by ext2fs_open2() and
ext2fs_check_desc() before we fall back to the backup block group
descriptors so that it's easier to see if there is some obscure
failure that is causing e2fsck to think that it should use the backup
block group descriptors.

Addresses-Google-Bug: #6208183

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
b0e91c89257d906324d6081c952157f768dfc699 18-Mar-2012 Theodore Ts'o <tytso@mit.edu> e2fsck: add logging capability

Add the ability to log messages about a file system to a specified
directory, using a file name templace that can be specified in
/etc/e2fsck.conf. This allows us to suppress the output of overly
verbose e2fsck outputs while still allowing the full logging output to
go to an appropriate file.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
b9a64a519af790216b6cd5105ccce55ff7f41a09 16-Mar-2012 Theodore Ts'o <tytso@mit.edu> e2fsck: print the current and expected block group checksums

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
26c09eb8145a16dcba6c40810d46a78712d253f2 11-Mar-2012 Theodore Ts'o <tytso@mit.edu> e2fsck: check for zero length extent

If an extent has e_len set to zero, the kernel will oops with a
BUG_ON. Unfortunately, e2fsck wasn't catching this case. The kernel
needs to be fixed to notice this case and call ext4_error() instead of
failing an assertion check, but e2fsck should catch this case and
repair it (by deleting the errant extent).

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
40b9cc517351dbedff43ab4f4da59af4921b6d25 06-Feb-2012 Theodore Ts'o <tytso@mit.edu> e2fsck: allow the block bitmap to be uninit when the inode bitmap is in use

Removing this check will allow us to eventually eliminate code from
the kernel which forcibly initialized the block bitmap when the inode
bitmap is first used. This would eliminate a required journal credit
and extra disk write.

Addresses-Google-Bug: #5944440

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
96a8afa7c134ef9239a70f264c35e709737f42cd 28-Sep-2011 Theodore Ts'o <tytso@mit.edu> e2fsck: check for invalid bad block inode

In some cases the bad block inode gets corrupted. If it looks insane,
offer to clear it before trying to interpret it does more harm than
good.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
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/problem.h
624e4a6466dba9889f5f80dc168f2bb7c2a3f5d0 20-Jul-2011 Aditya Kali <adityakali@google.com> e2fsck: add support for checking the built-in quota files

This patch adds support for doing quota accounting during full
e2fsck scan if the 'quota' feature was set on the superblock.
If user-visible quota inodes are in use, they will be hidden
and converted to the reserved quota inodes.

Signed-off-by: Aditya Kali <adityakali@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
a3efe4842054175d01b465fbe0b29b9be8b800a1 16-Jun-2011 Theodore Ts'o <tytso@mit.edu> e2fsck: fix mysterious "FILE SYSTEM WAS MODIFIED" with no changes

Commit 2a77a784a3 (firest released in e2fsprogs 1.33) compared
superblock summary free blocks and inode counts with the allocation
bitmap counts before starting the file system check proper, and if
they differed, set the superblock and marked it as dirty. If no other
file systme changes were required, this would cause a "*** FILE SYSTEM
WAS MODIFIED ***" message without any explanation of what e2fsck had
changed.

We fix this by only setting the superblock summary free block/inodes
counts if we are skipping a full check, and in non-preen mode, e2fsck
will now print an explicit message stating how the superblock had been
updated.

In a full check, any updates to the superblock free blocks/inodes
fields will be noted in pass5.

This change requires changing a few test results (essentially
reversing the changes made in commit 2a77a784a3).

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
44fe08f1fa1e9a994ff304aa02022c53c9341519 11-Jun-2011 Theodore Ts'o <tytso@mit.edu> e2fsck: add basic bigalloc support to check (but not yet repair) file systems

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
a6217f5ae2ca02f2f12c259b34615cbd7f4110d6 13-May-2010 Theodore Ts'o <tytso@mit.edu> e2fsck: Fix a number of problems that were inappropriately using PROMPT_ABORT

There were a number of problems that were prompting the user whether
or not to ABORT, but then would abort regardless of whether the user
answered yes or no. Change those to be PROMPT_NONE, PR_FATAL.

Also, fix PR_1_RESIZE_INODE_CREATE so that it recovers appropriately
after failing to create the resize inode. This problem now uses
PROMPT_CONTINUE instead of PROMPT_ABORT, and if the user says, "no",
the code will abort.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
2291fbb0358be8251df0d611913f49fbb9beb740 10-May-2010 Theodore Ts'o <tytso@mit.edu> e2fsck: Check for cases where EOFBLOCKS_FL is unnecessarily set

Some kernels will crash if EOFBLOCKS_FL is set when it is it not
needed, and this if it is left set when it isn't needed, it is a sign
of a kernel bug.

Addresses-Google-Bug: #2604224

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
60139154878ebdafd4b372cdcf179c5a957c519d 19-Aug-2009 Theodore Ts'o <tytso@mit.edu> e2fsck: Add a global latch question for bad group descriptor checksums

Very often all the block group descriptors will have bad checksums, so
don't force the user answer 'yes' many, many times.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
26ea4899d1fea0fbc5d28120944d2c2758ac1b11 17-Jul-2009 Theodore Ts'o <tytso@mit.edu> e2fsck: Fix superblock times in the future even if buggy_init_scripts=1

Unfortunately, distributions like Ubuntu seem to have buggy init
scripts that run e2fsck and mount the root filesystem before making
sure the system time and time zone is correctly set. As a result, a
filesystem's last write and last mounted time can be set in future.
The buggy_init_scripts configuration option will stop e2fsck from
aborting the boot process, but it also inhibits the superblock times
from getting fixed. This causes resize2fs to refuse to resize the
filesystem, even after running e2fsck on the file system. To deal
with this, we need to fix the superblock write times unconditionally.

Addresses-Launchpad-bug: #373409

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
ae33f578c01b7171e556a75158baf7b713bfe68f 28-Apr-2009 Andreas Dilger <adilger@sun.com> e2fsck: cleanup whitespace in problem.c and problem.h

Cleanup whitespace in the problem.h and problem.c files. Removes a
bunch of places where tabs follow spaces, whitespace on empty lines, etc.
I didn't reformat the indenting of the entire problem.h error codes,
but there is some room for doing this...

Signed-off-by: Andreas Dilger <adilger@sun.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
7494cbfd59eb61301e168dd8aa4b19c2f4b73532 28-Apr-2009 Andreas Dilger <adilger@sun.com> e2fsck: Add test code in problem.c to verify problem codes

We've hit a number of cases where the error codes in problem.h have
been assigned duplicate values compared to problems in our own e2fsck
patches, and this can lead to confusing and difficult to find bugs
in e2fsck (e.g. wrong problem messages, incorrect repair action, etc).

Attached is a test case for the problem.c file to ensure that the
problem table is sorted and does not contain any duplicate values.
Having the problem table sorted allows the correctness checking to be
very simple, and if it ever became important for performance we could
use binary searching of the problem table for the specific problem code.

Signed-off-by: Andreas Dilger <adilger@sun.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
911ec6261568ca56d2d7b9a15f00578c4d127cf4 24-Apr-2009 Theodore Ts'o <tytso@mit.edu> e2fsck: On a 32-bit filesystem, make sure i_file_acl_high is zero

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
7518c176867099eb529502103106501861a71280 26-Dec-2008 Theodore Ts'o <tytso@mit.edu> e2fsck: Fix an unhandled corruption case in scan_extent_node()

A corrupted interior node in an extent tree would cause e2fsck to
crash with the error message:

Error1: Corrupt extent header on inode 107192
Aborted (core dumped)

Handle this and related failures when scanning an inode's extent tree
more robustly.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
80875db58a6db58e3e2f01caf1adabca068d3ffb 13-Oct-2008 Theodore Ts'o <tytso@mit.edu> e2fsck: Offer to clear the test_fs flag if ext4 is available

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
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/problem.h
d5a8f9a9f25a85b69335915e5dac2a359334b5d7 03-Jun-2008 Theodore Ts'o <tytso@mit.edu> e2fsck: Detect unordered extents in an extent node

The logical block numbers must be monotonically increasing, and there
must not be any overlapping extents. If any are found, report them as
filesystem corruption.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
db0691b55521a072e05b47a4862bf5a30d550e7d 31-Mar-2008 Theodore Ts'o <tytso@mit.edu> Fix trailing whitespace in e2fsck/problem.[ch]

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
0d5439c8e0bc63438f45315755e7f0d9dcb09ccf 31-Mar-2008 Andreas Dilger <adilger@dilger.ca> e2fsck: Add check to enforce a valid block bitmap in last block group

Add a check for the UNINIT_BLOCKS flag set in the last group. The kernel
patch doesn't handle this gracefully, because it assumes there are a full
set of blocks in each group marked UNINIT_BLOCKS. The kernel should be
fixed up, but in the meantime this avoids hitting the problem, and is
more consistent with lazy_bg not marking the last group UNINIT.

Signed-off-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
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/problem.h
ee19c902e6f09ae058577f6b742d60692e7fb853 14-Mar-2008 Theodore Ts'o <tytso@mit.edu> e2fsck: Check for fast symlinks that have EXTENTS_FL set

These shouldn't show up in the wild, but if they do, e2fsck will offer
to clear them.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
a040a99b6cc4bf9f10d39747ca6947f0462a2eb2 13-Mar-2008 Theodore Ts'o <tytso@mit.edu> Merge branch 'maint'

Conflicts:

lib/ext2fs/ext2_err.et.in
d45edec0fb2e5d100d122fdda0914560c64def44 12-Mar-2008 Theodore Ts'o <tytso@mit.edu> e2fsck: Handle a pass 2 "should never happen" error gracefully

Turns out a "should never happen" error can indeed happen very easily
if a directory with an htree index has an incorrect, and too-large,
i_size field. This patch fixes this so that we handle this situation
gracefully, allowing filesystems with this error to be fixed.

In another patch I will clean up the specific problem which caused the
internal "should never happen" error from happening at all, but patch
will prevent e2fsck from crashing, and prompt the user to remove the
htree index, so it can be rebuilt again after pass 3.

Thanks to Bas van Schaik at Tetra for giving me access to his system
so this problem could be debugged.

Addresses-Launchpad-Bug: #129395

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
15d482ba6e46b6979d8d9e9b3b28e0942b626c2e 21-Aug-2007 Theodore Ts'o <tytso@mit.edu> e2fsck: Add support for extents

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
1a191d6648c8511d389cd9bea11dedb671f64456 03-Jul-2007 Theodore Ts'o <tytso@mit.edu> e2fsck: Detect recursive loops in @-expansions

The Turkish translation has a bug in it where it has the translation
of "E@e '%Dn' in %p (%i)" to "E@E". This causes @E to be expanded at
@E, recursively, forever, until the stack fills up e2fsck core dumps.

Fix it by stopping after a recursive depth of 10, which is far more
than we need.

Addresses-Sourceforge-Bug: 1646081

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
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/problem.h
fbc3f90194ca557e377c25f71db242c38c78f836 02-Apr-2007 Theodore Ts'o <tytso@mit.edu> e2fsck: Recover a special file which looks an awful lot like a directory

This is probably only useful in artificial test cases, but it will be
useful if we ever do the "inodes in directory" idea for ext4.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
f77704e416fca7dbe4cc91abba674d2ae3c14f6f 12-Nov-2006 Theodore Ts'o <tytso@mit.edu> Add directory hashed signed/unsigned hint to superblock

The e2fsprogs and kernel implementation of directory hash tree has a
bug which causes the implementation to be dependent on whether
characters are signed or unsigned. Platforms such as the PowerPC,
Arm, and S/390 have signed characters by default, which means that
hash directories on those systems are incompatible with hash
directories on other systems, such as the x86.

To fix this we add a new flags field to the superblock, and define two
new bits in that field to indicate whether or not the directory should
be signed or unsigned. If the bits are not set, e2fsck and fixed
kernels will set them to the signed/unsigned value of the currently
running platform, and then respect those bits when calculating the
directory hash. This allows compatibility with current filesystems,
as well as allowing cross-architectural compatibility.

Addresses Debian Bug: #389772

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
5d17119d14fe1276936c85d7986695a4543b1aa1 11-Nov-2006 Theodore Ts'o <tytso@mit.edu> On-disk format definition for huge files

- EXT4_FEATURE_RO_COMPAT_HUGE_FILE (0x0008) - change i_blocks to be
in units of s_blocksize units instead of 512-byte sectors, use
l_i_frag and l_i_fsize as i_blocks_hi (could also be part of 64BIT).

E2fsck and debugfs changed to support i_blocks_hi instead of l_i_frag and
l_i_fsize.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/problem.h
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/problem.h
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/problem.h
cebe48a1ece8b9f61271c73ead83b59c8b36233e 21-Mar-2005 Theodore Ts'o <tytso@mit.edu> Integrate code from Alex Thomas at Clusterfs to check extended attributes
stored in inodes into e2fsck.

There are a number of bug fixes and enhancements over the original lustre fsck
BK repository. The biggest one is that this extended attribute values must
be aligned on 4-byte boundaries.
/external/e2fsprogs/e2fsck/problem.h
33db8f80f2b5c5c5d8cd5068205c79f0ea11905b 05-Feb-2005 Theodore Ts'o <tytso@mit.edu> Remove support for --enable-clear-htree; this was
only needed during the early development of the htree patch.
/external/e2fsprogs/e2fsck/problem.h
c3ffaf833b7ddb3c1d422c71f59e1623029ede0c 24-Dec-2004 Theodore Ts'o <tytso@mit.edu> Add support to detect corrupted resize_inode's to e2fsck.
/external/e2fsprogs/e2fsck/problem.h
e75cfc5da83c749be43f87c0ccf5ec1f1dd26e2c 17-Dec-2004 Theodore Ts'o <tytso@mit.edu> Fix e2fsck so that it will clean up filesystesm that have the
resize_inode capability disabled, but which still have the
s_reserved_gdt_blocks field set in the superblock, or which
still have blocks in the inode #7 (the resize inode).
/external/e2fsprogs/e2fsck/problem.h
000ba4046fbcc11ff70ef840988854d82235e5b5 21-Nov-2003 Theodore Ts'o <tytso@mit.edu> pass1.c (e2fsck_pass1), problem.h (PR_1_BB_FS_BLOCK),
problem.c (PR_1_BB_FS_BLOCK, PR_1_BBINODE_BAD_METABLOCK_PROMPT):
Fix up the handling of corrupted indirect blocks in the
bad block. We now correctly handle the case where there
is an overlap between a block group descriptor or
a superblock and a bad block indirect block. In the case
where the indirect block is corrupted, we now suggest
"e2fsck -c".
/external/e2fsprogs/e2fsck/problem.h
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/problem.h
0926668d3af802b4d385d0fc3525a5a4e679574a 15-Mar-2003 Theodore Ts'o <tytso@mit.edu> e2fsck/pass2.c (check_dir_block): Check for duplicate filenames within
a single directory block (because this is the easy case;
we don't currently check for duplicates that span
directory blocks, for now. Eventually for htree
directories we can do this by searching for all directory
blocks that have a hash overflow, and then searching the
adjacent blocks to find all other potential duplicates.)
/external/e2fsprogs/e2fsck/problem.h
b0700a1b6083f2f0c19c349f07ca80e70ec456be 14-Mar-2003 Theodore Ts'o <tytso@mit.edu> Change e2fsck to detect and offer to delete or rename duplicate
filenames in directories when rebuilding directories using
"e2fsck -fD /dev/XXX"
/external/e2fsprogs/e2fsck/problem.h
ad4fa4660404ed88a3231fee338397af11e041b4 30-Sep-2002 Theodore Ts'o <tytso@mit.edu> Avoid counting directory entries during a directory salvage.

Add additional checks to HTREE directories. We now check the count
and limit fields in the htree header, as well as assuring that the
hash table in each interior node is in ascending order. We also
check to make sure all leaf nodes are have the expected depth in
the tree.

Updated test cases to deal with all of the above.
/external/e2fsprogs/e2fsck/problem.h
ea1959f01523ffc105747d660ccc5b7f02805928 31-Aug-2002 Theodore Ts'o <tytso@mit.edu> Fix a bug which caused e2fsck to fail to correctly check filesystems
using a non-zero hash version (i.e., half MD4 or TEA hash).

The hash version wasn't getting copied into dx_dir->hashversion and
this caused the kernel to treat all directories if they were using the
legacy hash, which was Bad.
/external/e2fsprogs/e2fsck/problem.h
0684a4f33b5c268fe12f57fcbc77a880c79ab282 17-Aug-2002 Theodore Ts'o <tytso@mit.edu> Overhaul extended attribute handling. Should now be correct with
respect to the latest V2 bestbits ACL code.
/external/e2fsprogs/e2fsck/problem.h
850d05e9aa405497e57c72090b9561af98b1b661 25-Jul-2002 Theodore Ts'o <tytso@mit.edu> Add e2fsck -D option which optimizes/compresses directories.

General cleanup of rehash code. (Fixed a few bugs, reformatted
code to make it more maintainable, etc.)
/external/e2fsprogs/e2fsck/problem.h
b7a00563b22b0ea47ddc7117508c0b8e0d65df43 20-Jul-2002 Theodore Ts'o <tytso@mit.edu> Add support to e2fsck to reindex directories to use hash trees.
/external/e2fsprogs/e2fsck/problem.h
503f9e7f6eb331c5b75d7f1ad126f71bcdcfb4e3 26-Jun-2002 Theodore Ts'o <tytso@mit.edu> Add support for the half-MD4 HTREE hash.

Add HTREE root node tests.
/external/e2fsprogs/e2fsck/problem.h
8fdc9985c1e2a4467630b33719b7feb281b7b33b 26-Jun-2002 Theodore Ts'o <tytso@mit.edu> Add initial support for htree directories.
/external/e2fsprogs/e2fsck/problem.h
da307041e75bdf3b24c1eb43132a4f9d8a1b3844 22-May-2002 Theodore Ts'o <tytso@mit.edu> Check for inodes which are too big (either too many blocks, or
would cause i_size to be too big), and offer to truncate the inode.
Remove old bogus i_size checks.

Add test case which tests e2fsck's handling of large sparse files.
Older e2fsck with the old(er) bogus i_size checks didn't handle
this correctly.
/external/e2fsprogs/e2fsck/problem.h
bcf9c5d4016975c3c2afdb4a4b358569bd3c8681 21-May-2002 Theodore Ts'o <tytso@mit.edu> Fix up Andreas' changeset. Avoid use of dynamic automatic arrays,
and check for EXT2_INDEX_FL for special devices, and consider them to
be invalid if they are set.
/external/e2fsprogs/e2fsck/problem.h
b94a052a25d0c524209782e408c31d8ff25a6fe1 18-May-2002 Andreas Dilger <adilger@clusterfs.com> Add more complete tests for symlinks: nul termination of long links and length
Improve the f_badsymlinks test case for these new tests.
/external/e2fsprogs/e2fsck/problem.h
f122632e6bb8a51126da2c71bdb95fbcb52f51bc 07-Mar-2002 Theodore Ts'o <tytso@mit.edu> E2fsck now prints ranges in pass 5 when printing deltas in
the block and inode bitmaps.
/external/e2fsprogs/e2fsck/problem.h
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/problem.h
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/problem.h
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/problem.h
a47426914745b7d50bb58a3d44b3509c647c637e 09-Aug-2001 Theodore Ts'o <tytso@mit.edu> pass1.c, pass2.c, problem.c, problem.h: Fix bug introduced by
Andreas's symlink code; check_blocks() was unconditionally testing
inode_bad_map without checking to see if it existed first. Fixed
problem a different way; we now no longer check inode_bad_map at all,
since the file might not get deleted in pass 2 anyway. We move the
large file feature reconciliation code to to e2fsck_pass2(), and in
deallocate_inode() in pass2.c, we decrement the large files counter if
we're about to delete a large file.
/external/e2fsprogs/e2fsck/problem.h
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/problem.h
55fd07ed0a5f4ed3dcc770526ee1ad3be967ac98 19-Jul-2001 Theodore Ts'o <tytso@mit.edu> This patch completes the initial extended attribute/ACL support for
e2fsck. We now check the entire EA block to make sure that the all
of the EA entries look sane.
/external/e2fsprogs/e2fsck/problem.h
e8a3ee628ad693cbae231089b18886e6ba0e59d3 07-Jul-2001 Theodore Ts'o <tytso@mit.edu> Add code to check and fix incorrect reference counts in the extended
attribute blocks.
/external/e2fsprogs/e2fsck/problem.h
342d847db355d81299218e07a1e58ece82080a04 02-Jul-2001 Theodore Ts'o <tytso@mit.edu> Add initial support for extended attribute blocks
/external/e2fsprogs/e2fsck/problem.h
fdbdea09b87dbd8e39c23286f22653e7641599ae 02-Jun-2001 Theodore Ts'o <tytso@mit.edu> ChangeLog, pass1.c, pass2.c, problem.c, problem.h:
pass1.c (mark_inode_bad): Replace alloc_bad_map with a function which
sets the bit in the bad inode bitmap.
(e2fsck_pass1): Check for fast symlinks with an invalid size, and set
the bad inode map in that case.
pass2.c (e2fsck_process_bad_inode): Check for fast symlinks with an
invalid size and prompt the user if the inode should be cleared.
problem.h, problem.c (PR_2_SYMLINK_SIZE): Added new problem code.
/external/e2fsprogs/e2fsck/problem.h
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/problem.h
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/problem.h
21afac096df642708ebf63dc4354575883f11174 14-May-2001 Theodore Ts'o <tytso@mit.edu> ChangeLog, pass1.c, problem.c, problem.h, problemP.h:
pass1.c: Treat inodes with a low dtime (that were from a corrupted
orphan list) specially.
problem.c, problem.h: Add new problem codes PR_1_LOW_DTIME and
PR_1_ORPHAN_LIST_REFUGEES, and a new latch group, PR_LATCH_LOW_DTIME.
problemP.h: Expand the size of the problem flag to be an int instead
of a short. Expand space in the flag word which is reserved for
problem latch flags from 3 bits to 8 bits.
ChangeLog, expect.1, expect.2, image.gz, name:
f_badorphan: New test which verifies corrupted orphan list handling.
/external/e2fsprogs/e2fsck/problem.h
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/problem.h
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/problem.h
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/problem.h
f18996c8eb7f530a7a408b8ede4a99fd52c02533 03-Jan-2001 Theodore Ts'o <tytso@mit.edu> ChangeLog, pass1.c, problem.c, problem.h:
pass1.c (e2fsck_pass1): Moved journal inode handling out to its own
block; if the journal inode is not in use, and it contains data, offer
to clear it.
problem.h, problem.c (PR1_JOURNAL_INODE_NOT_CLEAR): Add new problem
code.
problem.c: Modified problem table to use a new abbreviations.
/external/e2fsprogs/e2fsck/problem.h
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/problem.h
060b5fbf807dca3ce5f977a693ac68e84c03d13e 13-Dec-2000 Theodore Ts'o <tytso@mit.edu> ChangeLog, problem.c, problem.h:
problem.c, problem.h (PR_0_FS_REV_LEVEL, PR_1_FS_REV_LEVEL): Add new
problem codes.
/external/e2fsprogs/e2fsck/problem.h
133a56dc9da52054bc27b4c1a23f03e3405003db 17-Nov-2000 Theodore Ts'o <tytso@mit.edu> ChangeLog, message.c, pass1b.c, pass2.c, pass3.c, problem.c, problem.h:
pass1b.c: Change routines to use PR_1B_BLOCK_ITERATE when reporting
problems rather than using com_err directly.
problem.c, problem.h (PR_1B_BLOCK_ITERATE): Add new problem code.
message.c (expand_percent_expression): Add safety check. If ctx->str
is NULL, print "NULL" instead of dereferencing the null pointer.
pass1b.c, pass2.c, pass3.c: Change calls to ext2fs_block_iterate to
ext2fs_block_iterate2, to support 64-bit filesizes and to speed things
up slightly by avoiding the use of the ext2fs_block_iterate's
compatibility shim layer.
version.h:
Update for WIP release.
/external/e2fsprogs/e2fsck/problem.h
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/problem.h
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/problem.h
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/problem.h
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/problem.h
bbd47d76b7c12e98f9bf79b7c2582173252b4db6 10-Jun-2000 Theodore Ts'o <tytso@mit.edu> ChangeLog, pass5.c, problem.c, problem.h:
pass5.c (check_block_bitmaps, check_inode_bitmaps): Add error checking
for a "should never happen case".
problem.c, problem.h (PR_5_COPY_IBITMAP_ERROR,
PR_5_COPY_BBITMAP_ERROR): Add new error codes.
/external/e2fsprogs/e2fsck/problem.h
d647a1ea4db5fa4e4ed48573c63a1bde56e071db 27-May-2000 Theodore Ts'o <tytso@mit.edu> ChangeLog, pass1.c, problem.c, problem.h:
pass1.c (pass1, check_size): Apply patch from Chris Wedgewood
(cw@foof.org) which checks to see if special devices have a non-zero
size, and deals with it.
problem.c, problem.h (PR1_SET_NONZSIZE): Add new problem code.
/external/e2fsprogs/e2fsck/problem.h
4ea0a1109d761e9caaa53f6fa9e036321826c5fa 08-May-2000 Theodore Ts'o <tytso@mit.edu> ChangeLog, problem.c, problem.h, super.c:
problem.c, problem.h (PR_0_HURD_CLEAR_FILETYPE): Add new problem code.
super.c (check_super_block): If the OS type in the superblock is the
Hurd, check to see if the filetype feature is set, and offer to clear
it if so. This needs to be done since the Hurd doesn't properly
support the filetype feature. (And since the hurd allows the
transmogrification of files to special files and vice versa --- for no
good reason that I can understand --- it can't support the filetype
feature for the forseeable future, either.)
ChangeLog, mke2fs.c:
mke2fs.c (main): We forcibly turn off the filetype feature if the OS
is the hurd, since the hurd doesn't support it. (And since the hurd
allows the transmogrification of files to special files and vice versa
--- for no good reason that I can understand --- it can't support the
filetype feature for the forseeable future, either.)
mke2fs.c (proceed_question): Fix reversed sense of proceed_question
that was busted due to the internationalization patch. Fixed bug
where if proceed_question was called twice, the input buffer wasn't
cleared of the previous question's newline.
ChangeLog, expect.1, expect.2, image.gz, name:
f_hurd: Add test for Hurd-specific features (right now, just checks to
make sure the filetype feature is cleared)
ChangeLog, ls.c:
ls.c (list_super): Change the string displayed for the Hurd to be
GNU/Hurd, instead of just "GNU".
/external/e2fsprogs/e2fsck/problem.h
1917875fcd16428d14eb5a86acf414472bc216f1 11-Feb-2000 Theodore Ts'o <tytso@mit.edu> Many files:
unix.c (main): If compression is enabled on the filesystem, print a
warning message (for now).
message.c: Add new compression shortcut: @c == compress
problem.c, problem.h (PR_1_COMPR_SET): Add new error code.
pass1.c (check_blocks): If the inode has EXT2_COMPRBLK_FL flag set,
check to see if the filesystem supports compression. If it does pass
this information down to process_block() so it can treat the
compressed block flag words correctly. If not, offer to clear the
flag, since it shouldn't be set.
(process_block): If an inode has the compressed inode flag set, allow
EXT2FS_COMPRESSED_BLKADDR.
pass1b.c (process_pass1b_block, delete_file_block, clone_file_block):
pass2.c (deallocate_inode_block): Use HOLE_BLKADDR to check to see if
the block can be skipped.
ChangeLog, Makefile.in:
Makefile.in: Exclude the internationalization files from being
distributed.
ChangeLog, configure, configure.in:
configure.in: Add support for --enable-compression. This is
experimental code only for now, which is why it's under --enable test.
Once it's stable, it will always be compiled in.
TODO:
Commit additional TODO items.
/external/e2fsprogs/e2fsck/problem.h
6fdc7a325c8bff67fc3a0489d0858bc7c48dc1a3 10-Nov-1999 Theodore Ts'o <tytso@mit.edu> ChangeLog, e2fsck.h, pass1.c, pass2.c, pass3.c, problem.c, problem.h, util.c:
pass1.c (e2fsck_pass1): If the filesystem does not support imagic
inodes, if an inode has the imagic flag set, offer to clear the imagic
flag. If a valid device/fifo/socket has the immutable flag set, call
the new helper function check_immutable() to offerto clear the
immutable flag.
pass2.c (check_filetype): Use the new ext2_file_type() helper function
instead of calculating the file_type information manually.
pass3.c (e2fsck_reconnect_file): When adding a link to lost+found,
calculate the filetype information so that ext2fs_link() can use the
information if applicable. (get_lost_and_found): Create the
/lost+found directory with the correct filetype information if
applicable.
util.c (ext2_file_type), e2fsck.h: New function which returns the
directory entry file type information given the inode's mode bits.
problem.c, problem.h: Added new problem codes PR_1_SET_IMAGIC and
PR_1_SET_IMMUTABLE.
ChangeLog, mke2fs.8.in:
mke2fs.8.in: Update manual page so that the sparse_option filesystem
option is properly named.
/external/e2fsprogs/e2fsck/problem.h
7142db08c4e54a863fea2e757c6d3afa42ba2290 08-Nov-1999 Theodore Ts'o <tytso@mit.edu> ChangeLog, e2fsck.c, pass4.c, problem.h, unix.c:
pass4.c (e2fsck_pass4): Clear inode_imagic_map after freeing it, to
prevent it from getting freed twice.
unix.c (main): Close the filesystem before freeing the context, so
that in the event of a free()-related segmentation violation, the
filesystem is properly closed and written out.
e2fsck.c (e2fsck_reset_context): When freeing ctx->inode_reg_map, we
weren't zero'ing ctx->inode_reg_map, which could cause a segfault
later on in the e2fsck run.
problem.h (PR_2_SPLIT_DOT): Fix excess zero in problem code (now
matches the standard convention).
/external/e2fsprogs/e2fsck/problem.h
c40db6d5717023bdd6bb4935161e7ce9678d6234 25-Oct-1999 Theodore Ts'o <tytso@mit.edu> ChangeLog, pass2.c, problem.c, problem.h:
problem.c, problem.h (PR_2_NULL_NAME): Add new problem code.
pass2.c (check_dir_block): Require that the length of the directory
entry be at least 12 bytes. Check to see if the filename is
zero-length, and flag that as an error.
/external/e2fsprogs/e2fsck/problem.h
7847c1d4fff9195c16b6d74194d104200b3f6c67 22-Oct-1999 Theodore Ts'o <tytso@mit.edu> ChangeLog, pass2.c, problem.c, problem.h:
pass2.c (check_filetype): If the filetype filesystem feature is not
set, and a directory entry has a dirent feature, offer to clear it
(since 2.0 kernels will do complain will interpret it as a very large
name length field).
/external/e2fsprogs/e2fsck/problem.h
aa4115a47c554a936fdf5e6679e72a9329fecf45 21-Oct-1999 Theodore Ts'o <tytso@mit.edu> Many files:
pass4.c (e2fsck_pass4): If an inode is set in the inode_imagic_map
bitmap, don't check to see if it is disconnected from the inode tree
(because it almost certainly will be). Free inode_imagic_map at the
end of pass 4.
pass2.c (check_dir_block, check_filetype): If the FILETYPE feature is
set, check the directory entry's filetype information field, and
fix/set it if necessary. (e2fsck_pass2): Free the inode_reg_map
bitmap at the end of pass 2.
pass1.c (e2fsck_pass1, alloc_imagic_map): Allocate and fill in
information for inode_reg_map and inode_imagic_map, which indicates
which inodes are regular files and AFS inodes, respectively.
Since only the master superblock is written during a restart, force
that superblock to be used after a restart; otherwise changes to the
block group descriptors end up getting ignored.
problem.c, problemP.h: If e2fsck is run -n, make def_yn variable be 0
for "no". Add support for a new flag, PR_NO_NOMSG, which supresses
the problem message if e2fsck is run with the -n option.
problem.c, problem.h (PR_2_SET_FILETYPE, PR_2_BAD_FILETYPE): Add new
problem codes.
message.c (expand_dirent_expression): Add support for %dt which prints
the dirent type information.
e2fsck.c (e2fsck_reset_context): Free new bitmaps (inode_reg_map and
inode_imagic_map).
e2fsck.h (e2fsck_t): Add new inode_reg_map and inode_magic_map to the
context structure.
ChangeLog, nt_io.c:
nt_io.c: New file which supports I/O under Windows NT.
ChangeLog, gen_uuid_nt.c:
gen_uuid_nt.c: New file which creates a UUID under Windows NT.
Many files:
Add support for non-Unix compiles
/external/e2fsprogs/e2fsck/problem.h
d4b0ce03168d313e89110ab9fbaa6caf616d1786 18-Jun-1999 Theodore Ts'o <tytso@mit.edu> ChangeLog, problem.c, problem.h, super.c:
problem.c, problem.h (PR_0_INODE_COUNT_WRONG): Add new problem code.
super.c (check_super_block): Add check to make sure the total number
of inodes is sane, since this can be calculated from the number of
groups times the number of inodes per group. Offer to correct it if
it is incorrect.
/external/e2fsprogs/e2fsck/problem.h
4a9f59366b3c5503bde40e9566dc996a0a40626f 16-Mar-1999 Theodore Ts'o <tytso@mit.edu> ChangeLog, pass3.c, problem.c, problem.h, util.c:
util.c (print_resource_track): Use mallinfo if present to get more
accurate malloc statistics.
pass3.c (get_lost_and_found): Check to see if lost+found is a plain
fail; if so, offer to unlink it.
problem.c, problem.h (PR_3_LPF_NOTDIR): Add new problem code.
problem.c: Fix problem message for PR_1_BAD_GROUP_DESCRIPTORS so that
the block group number is printed. Add new prompt, PROMPT_UNLINK.
/external/e2fsprogs/e2fsck/problem.h
1dde43f0c1176f61dd0bf91aff265ce8cd1c5fd6 14-Nov-1998 Theodore Ts'o <tytso@mit.edu> ChangeLog, mke2fs.c, tune2fs.8.in:
tune2fs.8.in: Fix minor display bug in the nroff.
mke2fs.c (show_stats, write_inode_tables): Use the log10 function to
calculate the display of block numbers so that things look nice on an
80 character display.
mke2fs.c (usage): Add the sparse-super-flag to the usage message.
ChangeLog, e2fsck.c, pass1.c, pass2.c, problem.c, problem.h, unix.c:
unix.c (main): Move ext2fs_close() after e2fsck_free_context() since
e2fsck_free_context may reference data in ctx->fs.
e2fsck.c (e2fsck_reset_context): Make sure ctx->fs is non-NULL before
checking ctx->fs->dblist.
pass1.c (e2fsck_pass1): Use the device check subroutine on FIFO's and
Socket's, so that we catch bogus immutable inodes.
pass2.c (process_bad_inode): Process bad socket and fifo's.
problem.h, problem.c: Define new problem codes PR_2_BAD_FIFO and
PR_2_BAD_SOCKET.
/external/e2fsprogs/e2fsck/problem.h
7f813ba33711902f5e557da49f98622532e7556d 03-Sep-1998 Theodore Ts'o <tytso@mit.edu> ChangeLog, pass3.c, pass4.c, problem.c, problem.h, super.c:
problem.c: Add PR_3_NO_DIRINFO error code.
super.c (check_super_value): Rename min and max to min_val and max_val
to avoid possible cpp macro conflicts.
pass4.c (e2fsck_pass4): Rename max to maxgroup, to avoid possible cpp
macro conflicts.
pass3.c (e2fsck_pass3): Rename max to maxdirs, to avoid possible cpp
macro conflicts.
(check_directory): Fix logic to avoid possible core dump in the
case of ext2fs_get_dir_info returning NULL. (By the time we get here,
it should never happen, but...). Also simply/streamline the control
flow of the function.
/external/e2fsprogs/e2fsck/problem.h
9d1bd3de8dd44603a8141dbe4f0b2057dbdc5ea7 10-Jun-1998 Theodore Ts'o <tytso@mit.edu> ChangeLog, pass1.c, problem.h:
pass1.c, problem.h: Change blkcnt_t to be e2_blkcnt_t to avoid
collision with LFS API.
pass1.c (e2fsck_pass1): Fix bug so that ext2_max_sizes is properly
initialized.
(e2fsck_pass1): Don't allow the the boot loader inode to be a
directory (clear the inode mode field if so).
/external/e2fsprogs/e2fsck/problem.h
246501c612cb8309dc81b354b785405bbeef05ce 24-Mar-1998 Theodore Ts'o <tytso@mit.edu> Many files:
unix.c: Fix bug in check of feature set, to make sure we can really
fix this filesystem.
problem.h: Make blkcount type to be of type blkcnt_t. Make the num
field be a 64 bit type. Add the problem code PR_1_FEATURE_LARGE_FILES
problem.c: Add table entry for the problem code PR_1_FEATURE_LARGE_FILES.
pass1.c (e2fsck_pass1): A non-zero i_dir_acl field is only a problem
for directory inodes. (Since it is also i_size_high now.) If there
are no large_files, then clear the LARGE_FLAG feature flag. If there
are large_files, but the LARGE_FLAG feature flag is not set, complain
and offer to fix it.
(check_blocks): Add support to deal with non-directory inodes that
have i_size_high set (i.e., large_files). Don't give an error if a
directory has preallocated blocks, to support the DIR_PREALLOC
feature.
(process_block, process_bad_block): The blockcnt variable is a type of
blkcnt_t, for conversion to the new block_iterate2.
pass2.c (process_bad_inode): A non-zero i_dir_acl field is only a
problem for directory inodes. (Since it is also i_size_high now.)
message.c (expand_inode_expression): Print a 64-bits of the inode size
for non-directory inodes. (Directory inodes can only use a 32-bit
directory acl size, since i_size_high is shared with i_dir_acl.) Add
sanity check so that trying to print out the directory acl on a
non-directory inode will print zero. (expand_percent_expression): %B
and %N, which print pctx->blkcount and pctx->num, can now be 64 bit
variables. Print them using the "%lld" format if EXT2_NO_64_TYPE is
not defined.
e2fsck.h: Add the large_flagsfield to the e2fsck context.
e2fsck.c (e2fsck_reset_context): Clear the large_flags field.
ChangeLog, expect.1:
f_messy_inode: Modify test to deal with changes to support 64-bit size
files. (/MAKEDEV had i_dir_acl, now i_size_high, set.)
/external/e2fsprogs/e2fsck/problem.h
f8188fff23dc2d9c9f858fb21264e46b17672825 14-Nov-1997 Theodore Ts'o <tytso@mit.edu> Many files:
pass1.c, pass2.c, pass3.c, pass4.c, pass5.c: Add calls to the progress
indicator function.
pass1.c (scan_callback): Add call to the progress feedback function
(if it exists).
super.c (check_super_block): Skip the device size check if the
get_device_size returns EXT2_EXT_UNIMPLEMENTED.
iscan.c (main): Don't use fatal_error() anymore.
pass1b.c, swapfs.c, badblocks.c: Set E2F_FLAG_ABORT instead of calling
fatal_error(0).
problem.c, pass3.c (PR_3_ROOT_NOT_DIR_ABORT,
PR_3_NO_ROOT_INODE_ABORT): New problem codes.
problem.c, pass2.c (PR_2_SPLIT_DOT): New problem code.
problem.c, pass1.c (PR_1_SUPPRESS_MESSAGES): New problem code.
problemP.h: New file which separates out the private fix_problem data
structures.
util.c, dirinfo.c, pass1.c, pass1b.c, pass2.c, pass5.c, super.c,
swapfs.c util.c: allocate_memory() now takes a e2fsck context as its
first argument, and rename it to be e2fsck_allocate_memory().
problemP.h:
New file which contains the private problem abstraction definitions.
Makefile.pq:
Remove include of MAKEFILE.STD, which doesn't exist at this point.
/external/e2fsprogs/e2fsck/problem.h
1b6bf1759af884957234b7dce768b785f792abd0 03-Oct-1997 Theodore Ts'o <tytso@mit.edu> Many files:
pass*.c, super.c: Massive changes to avoid using printf and com_err
routines. All diagnostic messages are now routed through the
fix_problem interface.
pass2.c (check_dir_block): Check for duplicate '.' and '..' entries.
problem.c, problem.h: Add new problem codes PR_2_DUP_DOT and
PR_2_DUP_DOT_DOT.
problem.c: Added new problem codes for some of the superblock
corruption checks, and for the pass header messages. ("Pass
1: xxxxx")
util.c (print_resource_track): Now takes a description argument.
super.c, unix.c, e2fsck.c: New files to separate out the
operating-specific operations out from e2fsck.c. e2fsck.c now
contains the global e2fsck context management routines, and
super.c contains the "pass 0" initial validation of the
superblock and global block group descriptors.
pass1.c, pass2.c, pass3.c, pass4.c, pass5.c, util.c: Eliminate
(nearly) all global variables and moved them to the e2fsck
context structure.
problem.c, problem.h: Added new problem codes PR_0_SB_CORRUPT,
PR_0_FS_SIZE_WRONG, PR_0_NO_FRAGMENTS, PR_0_BLOCKS_PER_GROUP,
PR_0_FIRST_DATA_BLOCK
expect.1, expect.2:
Updated tests to align with e2fsck problem.c changes.
/external/e2fsprogs/e2fsck/problem.h
7cf73dcd3d173d88ceab26d381f4abac362d8518 14-Aug-1997 Theodore Ts'o <tytso@mit.edu> ChangeLog, e2fsck.h, message.c, pass1.c, pass2.c, problem.c, problem.h:
message.c: Add compression for the word "Illegal"
problem.c: Added entries for PR_2_BAD_CHAR_DEV and PR_2_BAD_BLOCK_DEV
pass1.c (pass1, check_device_inode), pass2.c (process_bad_inode): Use
a more stringent test for a valid device.
ChangeLog, Makefile.in:
Makefile.in (install): Fix rm command to use $(DESTDIR) appropriately.
/external/e2fsprogs/e2fsck/problem.h
521e36857227b21e7ab47b0a97f788d2af9f9717 29-Apr-1997 Theodore Ts'o <tytso@mit.edu> Many files:
Checked in e2fsprogs 1.08.
/external/e2fsprogs/e2fsck/problem.h
21c84b71e205b5ab13f14343da5645dcc985856d 29-Apr-1997 Theodore Ts'o <tytso@mit.edu> Many files:
Checked in e2fsprogs-1.07
/external/e2fsprogs/e2fsck/problem.h