bc1ec4b4593d0c89dc52b9042297b3aeb65e08cd |
|
22-May-2016 |
Theodore Ts'o <tytso@mit.edu> |
e2fsck: fix project quota support Use a large_inode so that when e2fsck is fixing a file system with project quota enabled, the correct project id's quota is adjusted when a corrupted inode is deleted. Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
86f3b6cf98a72c6dad0738e3af2512ddcbd49be9 |
|
24-Oct-2015 |
Darrick J. Wong <darrick.wong@oracle.com> |
e2fsck: clean up feature test macros with predicate functions Create separate predicate functions to test/set/clear feature flags, thereby replacing the wordy old macros. Furthermore, clean out the places where we open-coded feature tests. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
3dca12fb62448f52663c859a089244d9cf37c5e3 |
|
13-Jul-2015 |
Theodore Ts'o <tytso@mit.edu> |
Move dict.c from e2fsck to lib/support The quota code required that we included dict.o in libsupport.a, so we might as well just move dict.c and dict.h to lib/support, and then have e2fsck use the version of dict.c in libsupport.a. This simplifies the build system and eliminates having two identical copies of dict.o floating around in the build tree. Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
4a05268cf86f7138c78d80a53f7e162f32128a3d |
|
12-Apr-2015 |
Theodore Ts'o <tytso@mit.edu> |
Remove compression support The compression patches were an out-of-kernel patch set that was (a) only available for ext2, (b) something that was never could be stablized due to file system corruption, and (c) the most recent patches were for 3.1, last updated in 2011. The history of the compression patches has been a bit checkered. There is a long history here at http://e2compr.sourceforge.net which lists the perspective of the people working on it from the e2compr side. From the ext2/3/4 mainline developers' perspective, initial compression support was added to e2fsprogs in 2000 (in the Linux 2.2 era), but due to stability concerns the kernel patches were never merged into the mainline kernel. While there were some sporadic efforts to try to get the ext2 compression patches working in the 2.4 and 2.6 era, by that time mainline work had moved on to ext4, and the e2compr approach could only work with 32-bit block numbers and indirect mapped files. Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
09282b8a0b4b8ff7c57daf371dc3ea192e2947d3 |
|
28-Jan-2015 |
Darrick J. Wong <darrick.wong@oracle.com> |
e2fsck: decrement bad count _after_ remapping a duplicate block Decrement the bad count *after* we've shown that (a) we can allocate a replacement block and (b) remap the file block. Unfortunately, the only way to tell if the remapping succeeded is to wait until the next clone_file_block() call or block_iterate3() returns. Otherwise, there's a corruption error: we decrease the badcount once in preparation to remap, then the remap fails (either we can't find a replacement block or we have to split the extent tree and can't find a new extent block), so we delete the file, which decreases the badcount on the block a second time. Later on e2fsck will think that it's straightened out all the duplicate blocks, which isn't true. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
87b9f5e3fe9ff3353bc30e218ee1f7ae020be8b1 |
|
26-Jul-2014 |
Theodore Ts'o <tytso@mit.edu> |
Merge branch 'maint' into next Conflicts: e2fsck/pass1b.c
|
8dd650ab9ac394c6d6d19b02e8bb22d5a1e5da0d |
|
26-Jul-2014 |
Darrick J. Wong <darrick.wong@oracle.com> |
e2fsck: during pass1b delete_file, only free a cluster once If we're forced to delete a crosslinked file, only call ext2fs_block_alloc_stats2() on cluster boundaries, since the block bitmaps are all cluster bitmaps at this point. It's safe to do this only once per cluster since we know all the blocks are going away. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
9a1d614df217c02ea6b2cb0072fccfe706aea111 |
|
26-Jul-2014 |
Darrick J. Wong <darrick.wong@oracle.com> |
e2fsck: fix rule-violating lblk->pblk mappings on bigalloc filesystems As far as I can tell, logical block mappings on a bigalloc filesystem are supposed to follow a few constraints: * The logical cluster offset must match the physical cluster offset. * A logical cluster may not map to multiple physical clusters. Since the multiply-claimed block recovery code can be used to fix these problems, teach e2fsck to find these transgressions and fix them. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
60203cb17147d1fdca9482f295be1f3de6d01240 |
|
25-Jul-2014 |
Theodore Ts'o <tytso@mit.edu> |
Merge branch 'maint' into next Conflicts: e2fsck/pass1.c
|
b4a40883385d610c55c11de52002bd8f9c2d790e |
|
19-Jul-2014 |
Darrick J. Wong <darrick.wong@oracle.com> |
e2fsck: force all block allocations to use block_found_map During the later passes of efsck, we sometimes need to allocate and map blocks into a file. This can happen either by fsck directly calling new_block() or indirectly by the library calling new_block because it needs to allocate a block for lower level metadata (bmap2() with BMAP_SET; block_iterate3() with BLOCK_CHANGED). We need to force new_block to allocate blocks from the found block map, because the FS block map could be inaccurate for various reasons: the map is wrong, there are missing blocks, the checksum failed, etc. Therefore, any time fsck does something that could to allocate blocks, we need to intercept allocation requests so that they're sourced from the found block map. Remove the previous code that swapped bitmap pointers as this is now unneeded. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
35c8faaffcb9a1a75ad1210e605df21978c2b2ce |
|
23-Jul-2014 |
Darrick J. Wong <darrick.wong@oracle.com> |
e2fsck: don't clobber critical metadata during check_blocks If we encounter an inode with IND/DIND/TIND blocks or internal extent tree blocks that point into critical FS metadata such as the superblock, the group descriptors, the bitmaps, or the inode table, it's quite possible that the validation code for those blocks is not going to like what it finds, and it'll ask to try to fix the block. Unfortunately, this happens before duplicate block processing (pass 1b), which means that we can end up doing stupid things like writing extent blocks into the inode table, which multiplies e2fsck' destructive effect and can render a filesystem unfixable. To solve this, create a bitmap of all the critical FS metadata. If before pass1b runs (basically check_blocks) we find a metadata block that points into these critical regions, continue processing that block, but avoid making any modifications, because we could be misinterpreting inodes as block maps. Pass 1b will find the multiply-owned blocks and fix that situation, which means that we can then restart e2fsck from the beginning and actually fix whatever problems we find. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
f9f3050a0ad9be1c37b00c8478199d286ddcaeda |
|
22-Jul-2014 |
Theodore Ts'o <tytso@mit.edu> |
Merge branch 'maint' into next Conflicts: debian/changelog e2fsck/pass1.c lib/ext2fs/Makefile.in
|
88e172a942c8d0135ea7a73ab4a6a363ba24b09c |
|
22-Jul-2014 |
Darrick J. Wong <darrick.wong@oracle.com> |
e2fsck: report correct inode number in pass1b If there's a problem with the inode scan during pass 1b, report the inode that we were trying to examine when the error happened, not the inode that just went through the checker. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
28b966d7c667049f19a2947441ed29a95b415469 |
|
15-Mar-2014 |
Darrick J. Wong <darrick.wong@oracle.com> |
e2fsck: print runs of duplicate blocks instead of all of them When pass1 finds blocks that are mapped to multiple files, it will print every duplicated block. If there are long sequences of duplicate blocks (e.g. the e_pblk field is wrong in an extent), this can cause a gigantic flood of output when a range could convey the same information. Therefore, teach pass1b to print ranges when possible. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
e4681bca170094430ef173b67345d2d8f0cfcea8 |
|
16-Dec-2013 |
Theodore Ts'o <tytso@mit.edu> |
Merge branch 'maint' into next Conflicts: debugfs/debugfs.8.in
|
45ff69ffeb700012a7c052f5e45882557a40be7e |
|
16-Dec-2013 |
Andreas Dilger <adilger@dilger.ca> |
build: quiet LLVM non-literal string format warning Compiling with LLVM generates a large number of warnings due to the use of _() for wrapping strings for i18n: warning: format string is not a string literal (potentially insecure) [-Wformat-security] ./nls-enable.h:4:14: note: expanded from macro '_' #define _(a) (gettext (a)) ^~~~~~~~~~~~ These warnings are fixed by using "%s" as the format string, and then _() is used as the string argument. Signed-off-by: Andreas Dilger <adilger@dilger.ca> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
2fae17697ad85781f5c045a67a1103cc4111b130 |
|
03-Dec-2013 |
Theodore Ts'o <tytso@mit.edu> |
Merge branch 'maint' into next Conflicts: e2fsck/pass2.c e2fsck/pass3.c
|
974d57d3b1f896d2064ba854d7c037ab6478ecf8 |
|
03-Dec-2013 |
Theodore Ts'o <tytso@mit.edu> |
e2fsck: use errcode_t to suppress some -Wconversion warnings We need to store some error codes using an int to keep recovery.c as close as possible to the recovery.c source file in the kernel. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
581ecb6d8808a083add919f066f44cf7e70f9c4a |
|
20-May-2013 |
Theodore Ts'o <tytso@mit.edu> |
Merge branch 'maint' into next Conflicts: e2fsck/pass1b.c e2fsck/rehash.c lib/ext2fs/crc32c.c lib/ext2fs/gen_bitmap64.c misc/tune2fs.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/pass1b.c
|
39f5659ae3a0d9105ecddddfda2800b7002febc3 |
|
03-Aug-2012 |
Darrick J. Wong <djwong@us.ibm.com> |
libext2fs: verify and calculate extended attribute block checksums Calculate and verify the checksum for separate (i.e. not in the inode) extended attribute blocks; the checksum lives in the header. [ Merged in change from Tao so that we always use the fs checksum seed for the xattr blocks. ] Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: Tao Ma <boyu.mt@taobao.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.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/pass1b.c
|
24c91184d6577271f7387962c90626c973389f00 |
|
16-Dec-2011 |
Theodore Ts'o <tytso@mit.edu> |
e2fsck: fix use of uninitialized value in the MMP code Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
b23f2f4de0c427a8488d095adb06d3c0f38dfb0a |
|
28-Nov-2011 |
Theodore Ts'o <tytso@mit.edu> |
e2fsck: fix handling of duplicate blocks with bigalloc file systems We need to do an accounting of duplicate clusters on a per-cluster instead of a per-block basis so we know when we've correctly accounted for all of the multiply claimed blocks in a particular inode. Thanks to Robin Dong for reporting this bug. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.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/pass1b.c
|
0f5eba7501f467f757792ee449d16c9259b994fd |
|
24-Sep-2011 |
Andreas Dilger <adilger@whamcloud.com> |
ext2fs: add multi-mount protection (INCOMPAT_MMP) Multi-mount protection is feature that allows mke2fs, e2fsck, and others to detect if the filesystem is mounted on a remote node (on SAN disks) and avoid corrupting the filesystem. For e2fsprogs this means that it checks the MMP block to see if the filesystem is in use, and marks the filesystem busy while e2fsck is running on the system. This is useful on SAN disks that are shared between high-availability servers, or accessible by multiple nodes that aren't in HA pairs. MMP isn't intended to serve as a primary HA exclusion mechanism, but as a failsafe to protect against user, software, or hardware errors. There is no requirement that e2fsck updates the MMP block at regular intervals, but e2fsck does this occasionally to provide useful information to the sysadmin in case of a detected conflict. For the kernel (since Linux 3.0) MMP adds a "heartbeat" mechanism to periodically write to disk (every few seconds by default) to notify other nodes that the filesystem is still in use and unsafe to modify. Originally-by: Kalpak Shah <kalpak@clusterfs.com> Signed-off-by: Johann Lombardi <johann@whamcloud.com> Signed-off-by: Andreas Dilger <adilger@whamcloud.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.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/pass1b.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/pass1b.c
|
f51b4d3341fd7e04ecb9e7dcdf03c5ed25209540 |
|
10-Jul-2011 |
Theodore Ts'o <tytso@mit.edu> |
e2fsck: fix pass1b handling for bigalloc file systems Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
7501ce3ee331b7cdb965ab95036090f2de91b5e0 |
|
01-Jun-2011 |
Eric Sandeen <sandeen@redhat.com> |
e2fsck: don't check/clone duplicate xattr blocks in fs without xattr feature I had an extremely corrupted customer filesystem which, after thousands of lines of e2fsck output, found one more problem on an immediately subsequent e2fsck. In short, a file had had its i_file_acl block cloned due to being a duplicate. That ultimately got cleared because the fs did not have the xattr feature, and the inode was subsequently removed due to invalid mode. The 2nd e2fsck pass found the cloned xattr block as in use, but not owned by any file, and had to fix up the block bitmaps. Simply skipping the processing of duplicate xattr blocks on a non-xattr filesystem seems reasonable, since they will be cleared later in any case. (also fix existing brace misalignment) Signed-off-by: Eric Sandeen <sandeen@redhat.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.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/pass1b.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/pass1b.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/pass1b.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/pass1b.c
|
24a117abd0340d247befbf7687ffb70547fdf218 |
|
08-Sep-2009 |
Valerie Aurora Henson <vaurora@redhat.com> |
Convert to use io_channel_read_blk64() and io_channel_write_blk64() Signed-off-by: Valerie Aurora Henson <vaurora@redhat.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.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/pass1b.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/pass1b.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/pass1b.c
|
fea390e2534907dad42159437e01bd9a4ead2c55 |
|
05-May-2009 |
Ken Chen <kenchen@google.com> |
e2fsck: add resource tracking for passes 1[b-d] On ext2, time tracking for pass1 includes both error detection and specific type of fs fix-up phase (e.g. block referenced by multiple inodes). The multi-reference fix-up phase some time take significant amount of time to complete. We would like to track time spent in sub component of pass1 by having a finer granularity during pass1b through pass1d phase. Signed-off-by: Ken Chen <kenchen@google.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.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/pass1b.c
|
a040a99b6cc4bf9f10d39747ca6947f0462a2eb2 |
|
13-Mar-2008 |
Theodore Ts'o <tytso@mit.edu> |
Merge branch 'maint' Conflicts: lib/ext2fs/ext2_err.et.in
|
46d9a7462b7e796fb34c09c02e635ab77012c2bb |
|
12-Mar-2008 |
Theodore Ts'o <tytso@mit.edu> |
e2fsck: Fix obvious typo in an "internal error" message Thanks to Philipp Thomas for pointing this out. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
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/pass1b.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/pass1b.c
|
81cae650b7356ce493f93a33370d6a8c00f5948e |
|
20-Apr-2007 |
Jim Garlick <garlick@llnl.gov> |
e2fsck: Count the root directory as found if it has shared blocks in pass1c Another small bug I think: if the root directory contains shared blocks, e2fsck pass1c search_dirent_proc() will be looking for one more containing directory than it will ever find, and thus loses an opportunity to terminate early. Signed-off-by: Jim Garlick <garlick@llnl.gov>
/external/e2fsprogs/e2fsck/pass1b.c
|
3d51ff876e707248a26031beb80ce29c395cd51e |
|
11-Apr-2007 |
Jim Garlick <garlick@llnl.gov> |
e2fsck: pass1c terminates early if hard links I think this is a small buglet in e2fsck: if a file has multiple hard links, e2fsck pass1c search_dirent_proc() doesn't maintain its count properly and may return DIRENT_ABORT before it has found containing directories for all inodes sharing blocks. Signed-off-by: Jim Garlick <garlick@llnl.gov> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
538e654c25b7bc48d4dd86ebcc926585e530f0ef |
|
19-Mar-2007 |
Brian Behlendorf <behlendorf1@llnl.gov> |
[COVERITY] Check for NULL return from dict_lookup() in e2fsck The dict_lookup() function can potentially return a NULL dnode_t. It is not checked in two places in the clone_file() function. Looks to be safe to continue if n is NULL, so just print a warning message and continue. Coverity ID: 9: Null Returns Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.c
|
bb1a46a430a99f73ddaf7cf74e380dd5cf36382f |
|
12-Sep-2006 |
Eric Sandeen <esandeen@redhat.com> |
Fix loops over group descriptors to prevent 2**32-1 block number overflows For loops iterating over all group descriptors, consistently define first_block and last_block in a way that they are inclusive of the range, and do not overflow. Previously on the last block group we did a test of <= first + dec_blocks; this would actually wrap back to 0 for a total block count of 2^32-1 Also add handling of last block group which may be smaller. Signed-off-by: Eric Sandeen <esandeen@redhat.com>
/external/e2fsprogs/e2fsck/pass1b.c
|
9c07dc00b8ea175aa1446868b5cca5a21b41aecf |
|
29-May-2006 |
Theodore Ts'o <tytso@mit.edu> |
Add missing backwards compatibility for ancient Linux systems This fixes some (but not all) of the compatibility bugs which prevented e2fsprogs from being compiled on a Linux 2.0.35 system. There are still some unprotected use of long long's, and apparently some type problems with the uuid library, but these can be fixed up later. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
/external/e2fsprogs/e2fsck/pass1b.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/pass1b.c
|
5e91614349797fc51c8fbd3b8abbf22c5360baec |
|
14-Apr-2005 |
Theodore Ts'o <tytso@mit.edu> |
Don't offer to update or clone the resize inode when e2fsck deals with multiply claimed blocks.
/external/e2fsprogs/e2fsck/pass1b.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/pass1b.c
|
d2ee56d86eec86acec055f235dab8f1b6569a360 |
|
09-Jan-2005 |
Theodore Ts'o <tytso@mit.edu> |
Fix configure.in to use AC_CHECK_TYPES instead of the "broken by design" autoconf 2.13 version of AC_CHECK_TYPE. Otherwise, on some platforms intptr_t might get erroneously #define'd to be long. (Addresses Debian Bug #289133)
/external/e2fsprogs/e2fsck/pass1b.c
|
151786fc556930246a9d3b3db73c956c786891a1 |
|
22-Feb-2004 |
Theodore Ts'o <tytso@mit.edu> |
Fix up preen mode messages during pass 1B/C/D.
/external/e2fsprogs/e2fsck/pass1b.c
|
544349270e4c74a6feb971123884a8cf5052a7ee |
|
07-Dec-2003 |
Theodore Ts'o <tytso@mit.edu> |
Fix gcc -Wall nitpicks
/external/e2fsprogs/e2fsck/pass1b.c
|
0c193f82040f86b829143f4b24eaedaab72a0e10 |
|
01-Aug-2003 |
Theodore Ts'o <tytso@mit.edu> |
Include inttypes.h if present. New macros INT_TO_VOIDPTR and VOIDPTR_TO_INT. Use them throughout for int<->void * casts to fix 64-bit warnings.
/external/e2fsprogs/e2fsck/pass1b.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/pass1b.c
|
d237a78e4eb9f4d72b40270c10c641159bf7bb46 |
|
03-Oct-2002 |
Theodore Ts'o <tytso@mit.edu> |
Handle BAD_BLOCK_IN_INODE_TABLE even at the beginning of the inode table, and shrink code by reorganizing the while loop so to eliminate duplicate calls to ext2fs_get_next_inode().
/external/e2fsprogs/e2fsck/pass1b.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/pass1b.c
|
838e773e7a6899cec10884ad6c3fdcdaef72b82b |
|
01-Aug-2002 |
Theodore Ts'o <tytso@mit.edu> |
Change e2fsck to use a red/black tree in pass1b, to remove O(n**2) algorithms. Makes e2fsck much, much faster in certain rare cases where the filesystem is severely corrupted.
/external/e2fsprogs/e2fsck/pass1b.c
|
7b63fff9b6c4a0ca3b80740f01f5bf0583b42aa9 |
|
08-Jul-2001 |
Theodore Ts'o <tytso@mit.edu> |
pass1b.c (pass1b, process_pass1b_block): Change the num_bad field calculation so that it only counts EA block entries as a single multiply claimed block (since once we clone the EA blocks for one inode, we fix the problem for all of the other inodes). Also, I moved the num_bad calculation from process_pass1b_block to the end of pass1b. This fixes a *significant* performance bug in pass1b which hit people who had to had a lot of multiply claimed blocks. (Can you say O(n**3) boys and girls? I knew you could... Fortunately, this case didn't happen that much in actual practice.)
/external/e2fsprogs/e2fsck/pass1b.c
|
7abb2bdcd6c3787eafdff77bf53050f995f35054 |
|
07-Jul-2001 |
Theodore Ts'o <tytso@mit.edu> |
pass1b.c (clone_file_block): Fix bugs when cloning extended attribute blocks. Moved free of block_buf to after the code which clones the extattr block, and fixed logic for changing pointers to the extended attribute field in the inodes which were affected. (decrement_badcount): New function which is used whenever we need to decrement the number of files which claim a particular bad block. Fixed bug where delete_file wasn't checking check_if_fs_block() before clearing the entry in block_dup_map. This could cause a block which was claimed by multiple files as well as the filesystem metadata to not be completely fixed.
/external/e2fsprogs/e2fsck/pass1b.c
|
342d847db355d81299218e07a1e58ece82080a04 |
|
02-Jul-2001 |
Theodore Ts'o <tytso@mit.edu> |
Add initial support for extended attribute blocks
/external/e2fsprogs/e2fsck/pass1b.c
|
71d521c6097f1c2588fb0b13f43968371d4bfabb |
|
01-Jun-2001 |
Theodore Ts'o <tytso@mit.edu> |
ChangeLog, pass1.c, pass1b.c: pass1.c (pass1_get_blocks, pass1_read_inode, pass1_write_inode, pass1_check_directory): Add a safety check to make sure ctx->stashed_inode is non-zero. pass1b.c (pass1b): Use e2fsck_use_inode_shortcuts() to disable the inode shortcut processing, instead of manually clearing only half of the function pointers that needed to be NULL'ed out. This caused nasty bugs if the last inode in the filesystem needed dup block processing. pass1b.c (clone_file_block): When cloning a directory's metadata block, don't try to update the directory block list database, since indirect blocks aren't stored in the database and the resulting error will abort the file clone operation.
/external/e2fsprogs/e2fsck/pass1b.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/pass1b.c
|
53ef44c40a3e425d2c700d8fd77a6b655aa121fe |
|
06-Jan-2001 |
Theodore Ts'o <tytso@mit.edu> |
Many files: journal.c, pass1.c, pass1b.c, pass3.c, recovery.c, revoke.c, super.c, unix.c, util.c: Fix random gcc -Wall complaints. jfs_user.h: Use more sophisticated inline handling to allow building with --enable-gcc-wall
/external/e2fsprogs/e2fsck/pass1b.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/pass1b.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/pass1b.c
|
80c5d7e45ffa2d2e6d95eef99598c64e9a96d9c0 |
|
09-Feb-2000 |
Theodore Ts'o <tytso@mit.edu> |
ChangeLog, e2fsck.h, pass1.c, pass1b.c: e2fsck.h: pass1.c (mark_table_blocks, e2fsck_pass1): Remove ctx->block_illegal_map, since it's not needed by pass1, and pass1b has been modified to calculate it manually if needed. This reduces the memory footprint needed by e2fsck. pass1b.c (check_if_fs_block): New static function which returns whether or not a block overlaps with filesystem metadata. This replaces consulting the block_illegal_map bitmap. util.c: Make resource tracking message more concise.
/external/e2fsprogs/e2fsck/pass1b.c
|
0c4a07264e55b42c6e30230e66b1dea7d4b94ea9 |
|
07-Feb-2000 |
Theodore Ts'o <tytso@mit.edu> |
Many files: badblocks.c, e2fsck.h, ehandler.c, emptydir.c, extend.c, flushb.c, iscan.c, message.c, pass1.c, pass1b.c, pass3.c pass4.c, pass5.c, problem.c, scantest.c, swapfs.c, unix.c, util.c: Add Internationalization support as suggested by Marco d'Itri <md@linux.it>.
/external/e2fsprogs/e2fsck/pass1b.c
|
c1faf9cc3a2418c536eee472f054c9604ad3f213 |
|
14-Sep-1999 |
Theodore Ts'o <tytso@mit.edu> |
ChangeLog, pass1b.c: pass1b.c (clone_file_block): Don't clear the dup_map flag if the block also shares data with the fs metadata when the count drops to 1, since the block should still be cloned, as fs metadata isn't included in the count. ChangeLog, pass3.c: pass3.c (adjust_inode_count): Fix bug where we didn't keep the internal and external inode counts in sync when we decremented an inode whose link count was already zero. Now we skip incrementing or decrementing both link counts if we would cause an overflow condition. (expand_dir, expand_dir_proc): Change where we update the inode block count and size files so that the block count field is updated correctly when we create an indirect block.
/external/e2fsprogs/e2fsck/pass1b.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/pass1b.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/pass1b.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/pass1b.c
|
622f5f272d2a25539f040e04166e1e21eca3adb5 |
|
24-Oct-1997 |
Theodore Ts'o <tytso@mit.edu> |
ChangeLog, pass1b.c: Fix bug in error reporting in the case where cs.errcode is non-zero.
/external/e2fsprogs/e2fsck/pass1b.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/pass1b.c
|
a29f4d30f24d68f1f1c75548e020689ede532c05 |
|
29-Apr-1997 |
Theodore Ts'o <tytso@mit.edu> |
Many files: Checkin of e2fsprogs 1.10
/external/e2fsprogs/e2fsck/pass1b.c
|
521e36857227b21e7ab47b0a97f788d2af9f9717 |
|
29-Apr-1997 |
Theodore Ts'o <tytso@mit.edu> |
Many files: Checked in e2fsprogs 1.08.
/external/e2fsprogs/e2fsck/pass1b.c
|
21c84b71e205b5ab13f14343da5645dcc985856d |
|
29-Apr-1997 |
Theodore Ts'o <tytso@mit.edu> |
Many files: Checked in e2fsprogs-1.07
/external/e2fsprogs/e2fsck/pass1b.c
|
1e3472c5f37ca3686dd69b079d4d02a302f5798d |
|
29-Apr-1997 |
Theodore Ts'o <tytso@mit.edu> |
Many files: Checked in e2fsprogs 1.05
/external/e2fsprogs/e2fsck/pass1b.c
|
50e1e10fa0ac12a3e2a9d20a75ee9041873cda96 |
|
26-Apr-1997 |
Theodore Ts'o <tytso@mit.edu> |
Many files: Checked in e2fsprogs 0.5c
/external/e2fsprogs/e2fsck/pass1b.c
|
f3db3566b5e1342e49dffc5ec3f418a838584194 |
|
26-Apr-1997 |
Theodore Ts'o <tytso@mit.edu> |
Many files: Checkin of e2fsprogs 0.5b
/external/e2fsprogs/e2fsck/pass1b.c
|
3839e65723771b85975f4263102dd3ceec4523c0 |
|
26-Apr-1997 |
Theodore Ts'o <tytso@mit.edu> |
Many files: Checkin of e2fsprogs 0.5b
/external/e2fsprogs/e2fsck/pass1b.c
|