History log of /external/e2fsprogs/e2fsck/pass2.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/pass2.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/pass2.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/pass2.c
f404167dda29a59d2be2882328aeb074b9899669 17-Dec-2013 Theodore Ts'o <tytso@mit.edu> Clean up sparse warnings

Mostly by adding static and removing excess extern qualifiers. Also
convert a few remaining non-ANSI function declarations to ANSI.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
3b6c0938ec5aa401c7ae6c95e94e5ad30a7b8562 11-Dec-2013 Darrick J. Wong <darrick.wong@oracle.com> libext2fs: fix tests that set LARGE_FILE

For each site where we test for a large file (> 2GB) and set the
LARGE_FILE feature, use a helper function to make the size test
consistent with the test that's in e2fsck. This fixes the fsck
complaints when we try to create a 2GB journal (not so hard with 64k
block size) and fixes the incorrect test in fileio.c.

Reviewed-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.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/pass2.c
3c7c6d73f1a0bd45835966f1179fc3e8236a7d9c 03-Dec-2013 Theodore Ts'o <tytso@mit.edu> e2fsck: use problem_t to suppress some -Wconversion warnings

All code which stores a problem code should use the problem_t type.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
7bef6d52125ef3f1ef07d9da71a13546f6843c56 03-Dec-2013 Kit Westneat <kwestneat@ddn.com> e2fsck: use ext2fs_write_dir_block3() instead of ext2fs_write_dir_block()

The use of ext2fs_write_dir_block() meant that attempts to fix
deleted/unused inodes in a directory would not be fixed for file
systems with 64-bit block numbers. (And some random block with the
high 32-bits cleared would get corrupted.)

Fix a similar problem when expanding directories and when creating the
lost+found dirctory.

Signed-off-by: Kit Westneat <kwestneat@ddn.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
/external/e2fsprogs/e2fsck/pass2.c
c8ec2bad18fdaa842f786f3b37c9320a3411aea3 29-Jul-2013 Theodore Ts'o <tytso@mit.edu> e2fsck: correctly deallocate invalid extent-mapped symlinks

The function deallocate_inode() in e2fsck/pass2.c was buggy in that it
would clear out the inode's mode and flags fields before trying to
deallocate any blocks which might belong to the inode.

The good news is that deallocate_inode() is mostly used to free inodes
which do not have blocks: device inodes, FIFO's, Unix-domain sockets.

The bad news is that if deallocate_inode() tried to free an invalid
extent-mapped inode, it would try to interpret the root of the extent
node as block numbers, and would therefore mark various file system
metadata blocks (the superblock, block group descriptors, the root
directory, etc.) as free and available for allocation. This was
unfortunate.

(Try running an older e2fsck against the test file system image in the
new test f_invalid_extent_symlink, and then run e2fsck a second time
on the fs image, and weep.)

Fortunately, this kind of file system image corruption appears to be
fairly rare in actual practice, since it would require a very unlucky
set of bits to be flipped, or a buggy file system implementation.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.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/pass2.c
830b44f4385eb255d08fe0c8b200f8d8e3e97a8d 16-Dec-2011 Theodore Ts'o <tytso@mit.edu> e2fsck: use different bitmap types as appropriate

Now that we have multiple backend implementations of the bitmap code,
this commit teaches e2fsck to use either the most appropriate backend
for each use case.

Since we don't know for sure if we will get it all right, the default
choices can be overridden via e2fsck.conf. The various definitions
are shown here, with the current defaults (which may change as we add
more bitmap implementations and as learn what works better).

; EXT2FS_BAMP64_BITARRAY is 1
; EXT2FS_BMAP64_RBTREE is 2
; EXT2FS_BMAP64_AUTODIR is 3
[bitmaps]
inode_used_map = 2 ; pass1
inode_dir_map = 3 ; pass1
inode_reg_map = 2 ; pass1
block_found_map = 2 ; pass1
inode_bad_map = 2 ; pass1
inode_imagic_map = 2 ; pass1
block_dup_map = 2 ; pass1
block_ea_map = 2 ; pass1
inode_link_info = 2 ; pass1
inode_dup_map = 2 ; pass1b
inode_done_map = 3 ; pass3
inode_loop_detect = 3 ; pass3
fs_bitmaps = 2

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
0c80c44bd08c60f3cd0ad87f12a71a75cac3bcaa 17-Oct-2011 Theodore Ts'o <tytso@mit.edu> libext2fs: ext2fs_[set_]file_acl_block needs to check for 64-bit feature flag

The ext2fs_file_acl_block() and ext2fs_set_file_acl_block() needs to
only check i_file_acl_high if the 64-bit flag is set. This is needed
because otherwise we will run into problems on Hurd systems which
actually use that field for h_i_mode_high.

This involves an ABI change since we need to pass ext2_filsys to these
functions. Fortunately these functions were first included in the
1.42-WIP series, so it's OK for us to change them now. (This is why
we have 1.42-WIP releases. :-)

Addresses-Sourceforge-Bug: #3379227

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.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/pass2.c
f85a9ae6397ff074193322a12ed721dbf5751e41 16-Sep-2011 Eric Sandeen <sandeen@redhat.com> e2fsck: Don't store old_op from ehandler_operation if we don't restore it.

old_op is set but never used, because we restore "0"
not old_op. So don't bother with it.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
11ba79b3a67c864d23e04d1a2977b173f594bee9 16-Sep-2011 Eric Sandeen <sandeen@redhat.com> e2fsprogs: Remove impossible name_len tests.

The name_len field in ext2_dir_entry is actually comprised of
the name length in the lower 8 bytes, and the filetype in the
high 8 bytes. So in places, we mask name_len with 0xFF to
get the actual length.

But once we have masked name_len with 0xFF, there is no point
in testing whether it is greater than EXT2_NAME_LEN, which
is 255 - or 0xFF. So all of these tests are extraneous.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
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/pass2.c
0bd0e5932046401049502ee99529b984d7cd316e 09-Jul-2011 Andreas Dilger <adilger@whamcloud.com> misc: use EXT2_I_SIZE() consistently to get size

Use the EXT2_I_SIZE() macro consistently to access the inode size.
The i_size/i_size_high combination is open coded in several places.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
cf5301d7f2c3bbed3d26600335102414cbf0c4ba 11-Jun-2011 Andreas Dilger <adilger@whamcloud.com> misc: clean up compiler warnings

Fix several types of compiler warnings (unused variables/labels),
uninitialized variables, etc that are hit with gcc -Wall.

Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.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/pass2.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
0433c1f1b72bb85d9ea11e7716a415a878a655c8 11-May-2010 Theodore Ts'o <tytso@mit.edu> e2fsck: Don't clear inodes if we found inodes that are in the unused region

Commit 6267ee4 avoided repeating pass #1 over and over again if
multiple block groups are found with inodes in the bg_itable_unused
region during pass #2. This caused a regression because the problem
with not restarting pass #1 right away is that e2fsck will offer to
clear directory entries for inodes that are deleted, and e2fsck can't
easily distinguish between deleted inodes and inodes that were skipped
because of an incorrect bg_itable_unused value. So once an inode is
found in an unused region and we know that we're going to restart the
e2fsck pass, don't offer to clear any deleted inodes --- since those
will be caught in the second round.

Addresses-Google-Bug: #2642165

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
2d07b3ad98bfe1db5fb1071f53a5338ab6c35522 31-Jan-2010 Theodore Ts'o <tytso@mit.edu> Merge branch 'maint' into next

Conflicts:
configure
lib/ext2fs/alloc_tables.c
misc/mke2fs.c
3a6be7bc18f593789728fa9887bc74c9bf9d1930 29-Nov-2009 Theodore Ts'o <tytso@mit.edu> e2fsck: Fix block allocation for holes in extent-mapped directories

In pass 2, when allocating new blocks for holes in directories, use
ext2fs_set_bmap() instead of ext2fs_block_iterate2() with a helper
function so that the newly allocated directory blocks are correctly
assigned in extent-mapped directories.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
48f23054bb8ad0506c0baa9f06ba182acc2aa88b 26-Oct-2009 Valerie Aurora Henson <vaurora@redhat.com> Convert ext2fs_block_alloc_stats() calls to block_alloc_stats2()

Signed-off-by: Valerie Aurora Henson <vaurora@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.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/pass2.c
cd65a24e756b8f6770a5961fd94c67eb00dd7baa 26-Oct-2009 Theodore Ts'o <tytso@mit.edu> libext2fs: Convert ext2fs_bg_flag_test() to ext2fs_bg_flags_test()

After cleaning up ext2fs_bg_flag_set() and ext2fs_bg_flag_clear(),
we're left with ext2fs_bg_flag_test(). Convert it to
ext2fs_bg_flags_test().

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
e633b58ac75f2f544b7d6572e37d4b63da31e59c 26-Oct-2009 Eric Sandeen <sandeen@redhat.com> libext2fs: clean up ext2fs_bg_flags_ interfaces

The ext2fs_bg_flag* functions were confusing.

Currently we have this:

void ext2fs_bg_flags_set(ext2_filsys fs, dgrp_t group, __u16 bg_flags);
void ext2fs_bg_flags_clear(ext2_filsys fs, dgrp_t group,__u16 bg_flags);

(_set (unused) sets exactly bg_flags; _clear clears all and ignores bg_flags)

and these, which can twiddle individual bits in bg_flags:

void ext2fs_bg_flag_set(ext2_filsys fs, dgrp_t group, __u16 bg_flag);
void ext2fs_bg_flag_clear(ext2_filsys fs, dgrp_t group, __u16 bg_flag);

A better interface, after the patch below, is just:

ext2fs_bg_flags_zap(fs, group) /* zeros bg_flags */
ext2fs_bg_flags_set(fs, group, flags) /* adds flags to bg_flags */
ext2fs_bg_flags_clear(fs, group, flags) /* clears flags in bg_flags */

and remove the original ext2fs_bg_flags_set / ext2fs_bg_flags_clear.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.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/pass2.c
a63745e81cbb476b90c75ca3ca60b9ba4be95cae 08-Sep-2009 Valerie Aurora Henson <vaurora@redhat.com> Use ext2fs_file_acl_block() instead of using .i_file_acl directly

This provides support for 48-bit file acl blocks.

Signed-off-by: Valerie Aurora Henson <vaurora@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
732c8cd58ff30ffae0d3276c411a08920717a46c 08-Sep-2009 Theodore Ts'o <tytso@mit.edu> Use accessor functions fields for bg_flags in the block group descriptors

Signed-off-by: Valerie Aurora Henson <vaurora@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.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/pass2.c
f27aea2fbaf03e5d63a8e3000e616ea3cd4774f8 06-Jul-2009 Kazuya Mio <k-mio@sx.jp.nec.com> e2fsck: remove unnecessary continue statement

Remove the continue statement because it calls at the end of the loop.

Signed-off-by: Kazuya Mio <k-mio@sx.jp.nec.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
8a480350952f6f0fdbce54326b6d847e66368897 22-Jun-2009 Theodore Ts'o <tytso@mit.edu> Fix encoding for rec_len in directories for >= 64k blocksize file systems

Previously e2fsprogs interpreted 0 for a rec_len of 65536 (which could
occur if the directory block is completely empty in 64k blocksize
filesystems), while the kernel interpreted 65535 to mean 65536. The
kernel will accept both to mean 65536, and encodes 65535 to be 65536.
This commit changes e2fsprogs to match.

We add the encoding agreed upon for 128k and 256k filesystems, but we
don't enable support for these larger block sizes, since they haven't
been fully tested.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
23f75f6efaac6b756e0f3e4e1d33b6798347f66a 15-Jun-2009 Theodore Ts'o <tytso@mit.edu> e2fsck: fix miscellaneous memory leaks

Fix various miscellaneous memory leaks which were discovered using valgrind.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
9facd076ae8af6e908e228392cea866ce0faf1bc 28-May-2009 Ken Chen <kenchen@google.com> Add empty function for init_resource_track() and print_resource_track()
in the case of ! defined RESOURCE_TRACK, so that we can clean up #ifdef
throughout e2fsck source.

Signed-off-by: Ken Chen <kenchen@google.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
6267ee49be64035d8a9772c3bafed18a09874fa5 28-May-2009 Andreas Dilger <adilger@sun.com> e2fsck: only restart e2fsck once for inodes in uninit range

Restart e2fsck only once in case of multiple inodes in uninit range.
Display correct inode number during BG_INO_UNINIT and INOREF_IN_USED errors.

Signed-off-by: Kalpak Shah <kalpak.shah@sun.com>
Signed-off-by: Andreas Dilger <adilger@sun.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
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/pass2.c
42e89ce7f8823ad14099b03469c2f4e4f6530d05 27-Nov-2008 Theodore Ts'o <tytso@mit.edu> e2fsck: Don't cancel the fsck run after clearing an errant INODE_UNINIT flag

Thanks to Kelly Kane from Dreamhost for reporting this bug and then
helping us find and fix it.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
03fa6f8ae28a87018325c892f731097cc97d9eac 16-Nov-2008 Theodore Ts'o <tytso@mit.edu> Fix various signed/unsigned gcc warnings

Some of these could affect filesystems between 2^31 and 2^32-1 blocks.

Thanks to Valerie Aurora Henson for pointing out the problems in
lib/ext2fs/alloc_tables.c, which led me to do a "make gcc-wall" scan
over the source tree.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.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/pass2.c
5dd77dbe5a0ac6d78c1c6441fae4087be56d9088 26-Aug-2008 Theodore Ts'o <tytso@mit.edu> Add support for with empty directory blocks in 64k blocksize filesystems

The rec_len field in the directory entry is 16 bits, so if the
filesystem is completely empty, rec_len of 0 is used to designate
65536, for the case where the directory entry takes the entire 64k
block.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
e5e12db959d3c18f6cf4ac938a14f68be0a89acc 24-Aug-2008 Andreas Dilger <adilger@sun.com> fix e2fsck error message for bad htree depth

Fix error message to print the depth of a corrupt htree directory.

Signed-off-by: Andreas Dilger <adilger@sun.com>
Signed-off-by: Kalpak Shah <kalpak.shah@sun.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
1ca1059fd0126fd2c065f272a566c18f14bab16d 09-Apr-2008 Theodore Ts'o <tytso@mit.edu> Add support for the HUGE_FILE feature

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.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/pass2.c
7cadc57780f3e3e8e644e8976e11a336902d4a25 14-Mar-2008 Theodore Ts'o <tytso@mit.edu> e2fsck: Support long symlinks which use extents

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
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/pass2.c
a49670e64e28ac3b15e36cb6bd0a8135d3ecdbbb 28-Feb-2008 Theodore Ts'o <tytso@mit.edu> Merge branch 'maint'

Conflicts:

lib/blkid/devname.c
lib/blkid/probe.c
misc/mke2fs.c
misc/tune2fs.c
77175ca20cbfd8d8f3473a060bdbcb7f18505d1f 27-Feb-2008 Theodore Ts'o <tytso@mit.edu> e2fsck: Don't clear the LARGE_FILES feature flag

Stop clearing the EXT2_FEATURE_RO_COMPAT_LARGE_FILE flag automatically
if there are no large files in the filesystem. It's been almost a
decade since there have been kernels that don't support this flag, and
e2fsck clears it quietly without telling the user why the filesystem
has been changed.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
e3df15abdb288c3519000c639ed40429a82b63cd 15-Sep-2007 Theodore Ts'o <tytso@mit.edu> e2fsck: factor out code to clear an inode into e2fsck_clear_inode()

Factor out code to clear a bogus inode and update e2fsck's internal
data structures accordingly into a common routine,
e2fsck_clear_inode(). This saves about 200 bytes in the compiled x86
e2fsck executable, and makes the code more maintainable in the
long-term.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
5b57d921b4b9d9b0c4c678e2078887776eb43bbf 23-Aug-2007 Coly Li <coyli@suse.de> e2fsck: remove masix support

This patch remove masix support from e2fsck.

Signed-off-by: Coly Li <coyli@suse.de>
/external/e2fsprogs/e2fsck/pass2.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/pass2.c
6d96b00d57d236e2746f8245df6c8ea64abc64c1 04-Aug-2007 Theodore Ts'o <tytso@mit.edu> Add I/O statistics to e2fsck

This patch instruments the libext2fs unix I/O manager and adds bytes
read/written and data rate to e2fsck -tt pass/overall timing output.

Signed-off-by: Jim Garlick <garlick@llnl.gov>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
575307cc63d24766ff789262a5cea7b4faf2fa13 09-Jul-2007 Kalpak Shah <kalpak@clusterfs.com> e2fsck: Fix salvage_directory when the last entry's rec_len is too big

Recently, one of our customers found this message in pass2 of e2fsck
while doing some regression testing:

"Entry '4, 0x695a, 0x81ff, 0x0040, 0x8320, 0xa192, 0x0021' in ??? (136554) has
rec_len of 14200, should be 26908."

Both the displayed rec_len and the "should be" value are bogus. The
reason is that salvage_directory sets a offset beyond blocksize
leading to bogus messages.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
d5b753ee4d798a9869a1ba819a55dea9d81e0f68 19-Apr-2007 Theodore Ts'o <tytso@mit.edu> Remove unused variable in e2fsck/pass2.c:check_dir_block()

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
3f4c46e3f9871011a3d4dffbf7a0beb35bd27d08 14-Apr-2007 Bryn M. Reeves <breeves@redhat.com> Correct byteswapping for fast symlinks with xattrs

Fix a problem byte-swapping fast symlinks inodes that contain extended
attributes.

Addresses Red Hat Bugzilla: #232663
Addresses LTC Bugzilla: #27634

Signed-off-by: "Bryn M. Reeves" <breeves@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
e94bc631648299dca43a6015520b18f6232d50df 14-Apr-2007 Theodore Ts'o <tytso@mit.edu> Improve I/O error messages in e2fsck

Add better ehandler_operation() markers so it is clearer what e2fsck was
doing when an I/O error is reported.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
34b9f7963933daeb1c3fb3f21a70a1673d098154 07-Apr-2007 Theodore Ts'o <tytso@mit.edu> Enable e2fsck to use the tdb library for the inode count abstraction

If e2fsck.conf configures a scratch_files directory which is available,
and the number of directories exceeds scratch_files.numdirs_threshold,
then try to use the tdb library to store the inode count abstraction.
This allows us to check very large filesystems without needing as much
physical memory.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
28db82a84a33fab19f22da12bb2a8a3c558ae97b 05-Apr-2007 Theodore Ts'o <tytso@mit.edu> Rework e2fsck's dirinfo abstraction to be more friendly for databases

Change the iterator abstraction and replace e2fsck_get_dir_info() with
e2fsck_dir_info_{set,get}_{parent,dotdot} so that we can support an
on-disk dirinfo implementation. This allows e2fsck to check very large
filesystems on systems with smaller amounts of memory and/or address
space.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.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/pass2.c
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/pass2.c
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/pass2.c
977ac8731bf3bd934421dd8107e77325ec7e6de7 22-Oct-2006 Theodore Ts'o <tytso@mit.edu> Fix potential e2fsck -n crash

Don't core dump if there is a corrupt htree interior node. If the block
number is larger than the number of blocks in the directory, don't write
past the end of malloc'ed memory.

Addresses SourceForge Bug: #1512778

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
8deb80a5d1078cbe43eaffcdeebf0a1a549d6a54 19-Mar-2006 Takashi Sato <sho@tnes.nec.co.jp> Fix format statements to make e2fsprogs programs 32-bit clean

Change the format string(%d, %ld) for a block number and inode number
to %u or %lu.

Signed-off-by: Takashi Sato <sho@tnes.nec.co.jp>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass2.c
f76344fb6f9439ecd5060943930e73cd3b3dd9fe 04-Jul-2005 Theodore Ts'o <tytso@mit.edu> [BUGFIX]: E2fsck will segfault on disconnected inode with extended attribute(s)

This was actually caused by two bugs. The first bug is that if the
inode has been fully fixed up, the code will attempt to remove the
inode from the inode_bad_map without checking to see if this bitmap is
present. Since it is cleared at the end of pass 2, if
e2fsck_process_bad_inode is called in pass 4 (as it is for
disconnected inodes), this would result in a core dump.

The first bug was mostly hidden by a second bug, which caused
e2fsck_process_bad_inode() to consider all inodes without an extended
attribute to be not fixed.

Note: This bug was introduced in e2fsprogs 1.36.

(Addresses Debian Bug: #316736)
/external/e2fsprogs/e2fsck/pass2.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/pass2.c
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/pass2.c
a894eb47952040cd48da125f3cfd1aa8e3f925a1 28-Jan-2005 Theodore Ts'o <tytso@mit.edu> pass2.c (e2fsck_process_bad_inode): Fix a corner case involving
big-endian systems, long symlinks and i_file_acl set when
it shouldn't be. Without this bugfix, f_clear_xattr will
fail on big-endian machines.
/external/e2fsprogs/e2fsck/pass2.c
7e0282c5f21add344b306876ca999aecd4d5fd0c 28-Jan-2005 Theodore Ts'o <tytso@mit.edu> Fixed missing not_fixed branch in e2fsck so that if the frag size field in
the inode is not fixed, the inode_bad_map bitmap won't be cleared. Thanks to
Stephen Tweedie for pointing this out.
/external/e2fsprogs/e2fsck/pass2.c
6c313fd4732adbb83d6f9c402300487b6a7e84bb 27-Jan-2005 Theodore Ts'o <tytso@mit.edu> Fix e2fsck to not delete symlinks that contain an extended attribute after
the ext_attr feature flag has been cleared. (Addresses Red Hat Bugzilla
#146284)
/external/e2fsprogs/e2fsck/pass2.c
1ba7a2f2b6a9b152828a06443955a7fb1d139930 30-Jan-2004 Theodore Ts'o <tytso@mit.edu> Fix a byte swap bugs, including one which caused e2fsck to
incorrectly treat as valid symlinks created with SE Linux
(Debian bug #228723) as well as failing the f_journal test case on
big endian systems due to the backup journal blocks not being swapped.
/external/e2fsprogs/e2fsck/pass2.c
b969b1b8a5c13992cadb026114731958644540d8 28-Dec-2003 Matthias Andree <matthias.andree@gmx.de> Fix more compiler warnings.
/external/e2fsprogs/e2fsck/pass2.c
544349270e4c74a6feb971123884a8cf5052a7ee 07-Dec-2003 Theodore Ts'o <tytso@mit.edu> Fix gcc -Wall nitpicks
/external/e2fsprogs/e2fsck/pass2.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/pass2.c
48e6e81362f264aee4f3945c14928efaf71a06c9 06-Jul-2003 Theodore Ts'o <tytso@mit.edu> Fixx gcc -Wall nitpicks.
/external/e2fsprogs/e2fsck/pass2.c
520ead378ec5ddef828a8d206434cc3a444b2e9e 19-Apr-2003 Theodore Ts'o <tytso@mit.edu> Fix gcc -Wall warnings.
/external/e2fsprogs/e2fsck/pass2.c
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/pass2.c
f364093b1956def0b0f1d037852cbb645284d5f2 02-Mar-2003 Theodore Ts'o <tytso@mit.edu> Update debugfs and e2fsck to use the blkid library.
/external/e2fsprogs/e2fsck/pass2.c
e34bf43aff93b6e8a90b8e93d52f0e2376baf213 19-Dec-2002 Theodore Ts'o <tytso@mit.edu> pass2.c (strnlen): Provide strnlen if libc doesn't.
/external/e2fsprogs/e2fsck/pass2.c
0c897a9012efb7d65244e25245c4b7318201d961 09-Nov-2002 Theodore Ts'o <tytso@mit.edu> Add german translation to the language catalog

Fix internationalization of "pass 2" in e2fsck.

Update po files.
/external/e2fsprogs/e2fsck/pass2.c
8132d840c8f6b0d90ab5048d6f8529f74e1aa0b3 03-Oct-2002 Theodore Ts'o <tytso@mit.edu> Fix endian problems in the htree code for e2fsck and debugfs.

When byte-swapping a filesystem on a PPC architecture, byte-swap
the bitmaps since the historical big-endian ext2 variant had
byte-swapped bitmaps, and the ext2fs library assumes this. Otherwise
the regression test suite will fail...
/external/e2fsprogs/e2fsck/pass2.c
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/pass2.c
e8254bfd3b49cb325a1ff6b21ca86570a1008744 30-Sep-2002 Theodore Ts'o <tytso@mit.edu> pass2.c (check_dir_block): Do a more paranoid check when trying
to determine whether or not a directory entry is a
completely empty leaf block or leaf node. Otherwise
e2fsck might get confused into thinking that a valid dxdir
was corrupted.
/external/e2fsprogs/e2fsck/pass2.c
e70ae99e077f5085c15a4526028e2aac0e91d7c1 28-Sep-2002 Theodore Ts'o <tytso@mit.edu> Add a more sophisticated algorithm to e2fsck to salvage corrupted
directories.

Speed up e2fsck slightly by only updating the master superblock;
there is no point to update the backup superblocks.

Fix a small bug in the rehashing code which could leave the indexed
flag set even after the directory was compressed instead of indexed.
(Not fatal, since the kernel will deal with this, but technically
it filesystem isn't consistent, and the filesystem will be marked
as being in error when the kernel comes across the directory. It
should also never happen in real life, since directories that small
will never be indexed, but better safe than sorry.)

Also change the threshold of when directories are indexed, so that
directories of size 2 blocks will be indexed. Otherwise they will
never be indexed by the kernel when they grow.
/external/e2fsprogs/e2fsck/pass2.c
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/pass2.c
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/pass2.c
4cae04529eda0e482ceaa86b48e532f9c8d35f24 21-Jul-2002 Theodore Ts'o <tytso@mit.edu> Add SIGINT and SIGTERM handling to fsck and e2fsck. For e2fsck,
make sure we gracefully clean up and only exit at safe points.
For fsck, we pass the SIGINT/SIGTERM signal to the child processes,
so they can do their own cleanup.
/external/e2fsprogs/e2fsck/pass2.c
b7a00563b22b0ea47ddc7117508c0b8e0d65df43 20-Jul-2002 Theodore Ts'o <tytso@mit.edu> Add support to e2fsck to reindex directories to use hash trees.
/external/e2fsprogs/e2fsck/pass2.c
62acaa1de132a808949d71264731bba7fe095705 15-Jul-2002 Theodore Ts'o <tytso@mit.edu> pass2.c (e2fsck_pass2): Use dx_dir->numblocks instead of
dx_dir->ino to indicate that a bad inode was cleared.
/external/e2fsprogs/e2fsck/pass2.c
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/pass2.c
8fdc9985c1e2a4467630b33719b7feb281b7b33b 26-Jun-2002 Theodore Ts'o <tytso@mit.edu> Add initial support for htree directories.
/external/e2fsprogs/e2fsck/pass2.c
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/pass2.c
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/pass2.c
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/pass2.c
d007cb4cbb4b8b190ffd9a597f0e88ea365926c5 05-Aug-2001 Theodore Ts'o <tytso@mit.edu> Cleanup changes to Andreas' symlink patch. Remove use of EXT2_LINK_DIR

Also cleaned up the symlink handling code to make it a bit more
compact and to test for a bad symlink block earlier.
/external/e2fsprogs/e2fsck/pass2.c
67052a8aeeca8cd80d1dd33c2792f917573accc8 04-Aug-2001 Andreas Dilger <adilger@clusterfs.com> Add extra checks for bad symlinks, including zero length symlinks,
too long i_size for slow and fast symlinks, i_size_high set, multiple
blocks for slow symlinks.
/external/e2fsprogs/e2fsck/pass2.c
342d847db355d81299218e07a1e58ece82080a04 02-Jul-2001 Theodore Ts'o <tytso@mit.edu> Add initial support for extended attribute blocks
/external/e2fsprogs/e2fsck/pass2.c
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/pass2.c
b9852cd87b42f79d569db68c3fdefe4a8f48ede1 05-May-2001 Theodore Ts'o <tytso@mit.edu> ChangeLog, pass2.c:
pass2.c (check_dir_block): Ignore EXT2_ET_DIR_CORRUPTED errors from
ext2fs_read_dir_block().
/external/e2fsprogs/e2fsck/pass2.c
4035f40bc4550ce7520724cc837992a700794e00 12-Jan-2001 Theodore Ts'o <tytso@mit.edu> ChangeLog, pass2.c:
pass2.c: Minor whitespace cleanups, from Andreas Dilger.
/external/e2fsprogs/e2fsck/pass2.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/pass2.c
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/pass2.c
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/pass2.c
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/pass2.c
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/pass2.c
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/pass2.c
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/pass2.c
5596defa1e212242c1bf1b028139143fbb7777a0 19-Jul-1999 Theodore Ts'o <tytso@mit.edu> Many files:
unix.c: Add support for calculating a progress bar if the -C0 option
is given. The function e2fsck_clear_progbar() clears the progress bar
and must be called before any message is issued. SIGUSR1 will enable
the progress bar, and SIGUSR2 will disable the progress bar. This is
used by fsck to handle parallel filesystem checks. Also, set the
device_name from the filesystem label if it is available.
e2fsck.h: Add new flags E2F_FLAG_PROG_BAR and E2F_FLAG_PROG_SUPRESS.
Add new field in the e2fsck structure which contains the last tenth of
a percent printed for the user.
message.c (print_e2fsck_message): Add call to e2fsck_clear_progbar().
pass1.c (e2fsck_pass1):
pass2.c (e2fsck_pass2):
pass3.c (e2fsck_pass3):
pass4.c (e2fsck_pass4):
pass5.c (e2fsck_pass5): Add call to e2fsck_clear_progbar when printing
the resource tracking information.
pass5.c (check_block_bitmaps, check_inode_bitmaps): If there is an
error in the bitmaps, suppress printing the progress bar using the
suppression flag for the remainder of the check, in order to clean up
the display.
/external/e2fsprogs/e2fsck/pass2.c
e72a9ba39471364ad2f9397f645ca547090e3485 25-Jun-1999 Theodore Ts'o <tytso@mit.edu> ChangeLog, e2fsck.h, pass1.c, pass2.c, pass4.c, swapfs.c:
e2fsck.h:
pass1.c (pass1_get_blocks, pass1_read_inode, pass1_write_inode,
pass1_check_directory, e2fsck_use_inode_shortcuts): Make pass1_* be
private static functions, and create new function
e2fsck_use_inode_shortcuts which sets and clears the inode shortcut
functions in the fs structure.
e2fsck.h:
pass2.c (e2fsck_process_bad_inode): Make process_bad_inode() an
exported function.
pass4.c (e2fsck_pass4): Call e2fsck_process_bad_inode to check if a
disconnected inode has any problems before connecting it to
/lost+found. Bug and suggested fix by Pavel Machek <pavel@bug.ucw.cz>
ChangeLog, swapfs.c:
swapfs.c (ext2fs_swap_inode): Add compatibility for Linux 2.3 kernels
that use i_generation instead of i_version. Patch supplied by Jon
Bright <sircus@sircus.demon.co.uk>.
ChangeLog, mke2fs.8.in:
mke2fs.8.in: Fix typo in man page which caused the badblocks command
to not show up in the "SEE ALSO" section.
ChangeLog, expect.1, expect.2, image.gz, name:
f_recnect_bad: New test which checks the case where a disconnect inode
also bad inode fields; we need to make sure e2fsck offers to fix the
inode (or clear the inode, as necessary).
/external/e2fsprogs/e2fsck/pass2.c
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/pass2.c
f75c28de4731c2cd09f6ca1a23e25c968a1edc2f 01-Aug-1998 Theodore Ts'o <tytso@mit.edu> ChangeLog, e2fsck.c, pass2.c, pass3.c, unix.c:
pass2.c (e2fsck_pass2): Fix the progress accounting so that we get to
100%.
pass3.c (e2fsck_pass3): Change progress accounting to be consistent
with the other e2fsck passes.
e2fsck.c (e2fsck_run): At the end of each pass, call the progress
function with the pass number set to zero.
unix.c (e2fsck_update_progress): If the pass number is zero, ignore
the call, since that indicates that we just want to deallocate any
progress structures.
emptydir.c:
Commit partially done file.
ChangeLog, badblocks.c:
badblocks.c (ext2fs_badblocks_list_add): Use a bigger increment than
10 blocks when we need to expand the size of the badblocks list.
/external/e2fsprogs/e2fsck/pass2.c
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/pass2.c
b6f7983197fe217cf20862c93d72620be3b0fcec 09-Mar-1998 Theodore Ts'o <tytso@mit.edu> ChangeLog, message.c, pass2.c, pass3.c:
Mask off the high eight bits of the directory entry's name_len field,
so that it can be used for other purposes.
/external/e2fsprogs/e2fsck/pass2.c
a02ce9df5ff5db2982462aec7162f7142dc18131 24-Feb-1998 Theodore Ts'o <tytso@mit.edu> Many files:
Change the progress function to return an integer; if returns 1, then
the progress function is expected to have set the e2fsck context flag
signalling a user abort, and the caller should also initiate a user
abort.
/external/e2fsprogs/e2fsck/pass2.c
54dc7ca2869897ae8cb81a9ab9880ebff11680bc 19-Jan-1998 Theodore Ts'o <tytso@mit.edu> Many files:
e2fsck.h: If EXT2_FLAT_INCLUDES is defined, then assume all of
the ext2-specific header files are in a flat directory.
dirinfo.c, ehandler.c, pass1.c, pass1b.c, pass2.c, pass5.c,
super.c, swapfs.c, unix.c: Explicitly cast all assignments
from void * to be compatible with C++.
unix.c (sync_disk): Remove sync_disk and calls to that function,
since ext2fs_close() now takes care of this.
pass1.c, pass1b.c, pass2.c, pass3.c, swapfs, badblocks.c,
ehandler.c, unix.c: Change use of private to be priv_data, to
avoid C++ reserved name clash.
/external/e2fsprogs/e2fsck/pass2.c
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/pass2.c
08b213017f8371ce4b56ad4d368eb0f92211d04e 03-Nov-1997 Theodore Ts'o <tytso@mit.edu> Many files:
Change ext2fs_read_inode, ext2fs_write_inode to take the e2fsck
context as their first argument.
Change dir_info.c routines to take an e2fsck_context, renamed them to
start with e2fsck_ to avoid namespace issues, and changed them to
store the directory information inside the e2fsck context.
Added e2fsck_run() which calls all of the e2fsck passes in the correct
order, and which handles the return of abort codes.
Added abort processing, both via setjmp/longjmp and via flags in the
e2fsck context.
Use a flag in the e2fsck context instead of the restart_e2fsck global
variable.
Change uses of free and malloc to ext2fs_free_mem and ext2fs_get_mem.
/external/e2fsprogs/e2fsck/pass2.c
8bf191e8660939687ef35c013066d2082cb16722 20-Oct-1997 Theodore Ts'o <tytso@mit.edu> Many files:
Place #ifdef RESOURCE_TRACK around code which uses init_resource_track
and print_resource_track. (Not all systems have timeval)
/external/e2fsprogs/e2fsck/pass2.c
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/pass2.c
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/pass2.c
7ac02a5ebddcc6187c893eedc80d92777b399575 11-Jun-1997 Theodore Ts'o <tytso@mit.edu> ChangeLog, pass2.c:
Check the error return from ext2fs_dblist_iterate.
/external/e2fsprogs/e2fsck/pass2.c
521e36857227b21e7ab47b0a97f788d2af9f9717 29-Apr-1997 Theodore Ts'o <tytso@mit.edu> Many files:
Checked in e2fsprogs 1.08.
/external/e2fsprogs/e2fsck/pass2.c
21c84b71e205b5ab13f14343da5645dcc985856d 29-Apr-1997 Theodore Ts'o <tytso@mit.edu> Many files:
Checked in e2fsprogs-1.07
/external/e2fsprogs/e2fsck/pass2.c
1e3472c5f37ca3686dd69b079d4d02a302f5798d 29-Apr-1997 Theodore Ts'o <tytso@mit.edu> Many files:
Checked in e2fsprogs 1.05
/external/e2fsprogs/e2fsck/pass2.c
7f88b04341d88c5df0360d930832c38040303b61 26-Apr-1997 Theodore Ts'o <tytso@mit.edu> Many files:
Checkin of e2fsprogs 1.03.
/external/e2fsprogs/e2fsck/pass2.c
50e1e10fa0ac12a3e2a9d20a75ee9041873cda96 26-Apr-1997 Theodore Ts'o <tytso@mit.edu> Many files:
Checked in e2fsprogs 0.5c
/external/e2fsprogs/e2fsck/pass2.c
f3db3566b5e1342e49dffc5ec3f418a838584194 26-Apr-1997 Theodore Ts'o <tytso@mit.edu> Many files:
Checkin of e2fsprogs 0.5b
/external/e2fsprogs/e2fsck/pass2.c
3839e65723771b85975f4263102dd3ceec4523c0 26-Apr-1997 Theodore Ts'o <tytso@mit.edu> Many files:
Checkin of e2fsprogs 0.5b
/external/e2fsprogs/e2fsck/pass2.c