Theodore Ts'o
ae65b29f11
Update files for 1.31 release.
2002-11-08 20:08:48 -05:00
Theodore Ts'o
c1637bd371
unix.c (main): Fix a bug where e2fsck could erroneously mark a
...
filesystem as being valid if it was being checked and it
is interrupted with a ^C. (Bug introduced in e2fsprogs
1.28.)
2002-11-08 15:55:17 -05:00
Theodore Ts'o
5e72cdbeb9
unix.c (PRS), journal.c: Set the default level of journal
...
debugging to be 0, and allow the user to set the level of
journal debugging by using the E2FSCK_JBD_DEBUG
environment variable.
2002-11-08 15:35:13 -05:00
Theodore Ts'o
299d742427
Change e2fsck to force out changes to the backup copies of the
...
superblock and block group descriptors when important changes
are made to those data structures.
2002-11-08 11:10:28 -05:00
Theodore Ts'o
ee895139d7
e2fsck.h, unix.c (main, check_mount): Fix e2fsck so that it
...
returns the appropriate exit code, so that the boot
scripts will be told that they need to automatically
reboot.
2002-11-07 16:16:55 -05:00
Theodore Ts'o
5d823a478f
Update files for 1.30 release.
2002-11-01 02:13:53 -05:00
Theodore Ts'o
b40ffd792e
unix.c (usage), e2fsck.8.in: Add the -D option to the usage and
...
command synopsis. (Addresses Debian bug #167108 )
2002-10-31 19:30:24 -05:00
Theodore Ts'o
be93ef0c14
pass1.c (e2fsck_pass1): Check the superblock write time to see
...
whether or not we can safely do the LOW_DTIME checks.
(Addresses Sourceforge bug #620980 )
2002-10-31 18:38:55 -05:00
Theodore Ts'o
482afc442d
Makefile.in (install): Search all compression extensions when
...
deleting old man pages.
2002-10-31 03:32:34 -05:00
Theodore Ts'o
76dd5e5c28
Add support for the meta_bg feature flag to the resize2fs program.
...
Fix bug in meta_bg support in mke2fs, e2fsck, and dumpe2fs; we were
incorrectly reserving the legacy block groups desriptor blocks.
2002-10-30 23:07:21 -05:00
Theodore Ts'o
a49929b656
Add support for the meta_blockgroup filesystem format. (Missing changelog)
2002-10-20 00:58:08 -04:00
Theodore Ts'o
3e69906495
Fix gcc -Wall nits.
...
Fix format bug if NLS is in use.
Add extra so that the info directory looks OK on OpenWall.
2002-10-13 23:56:28 -04:00
Theodore Ts'o
64aecc4dd3
Fix bug in e2fsck and mklost+found; the lost+found directory should
...
created with mode 0700.
2002-10-11 17:44:12 -04:00
Theodore Ts'o
8132d840c8
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...
2002-10-02 22:07:17 -04:00
Theodore Ts'o
ad4fa46604
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.
2002-09-30 11:19:19 -04:00
Theodore Ts'o
e8254bfd3b
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.
2002-09-29 19:30:28 -04:00
Theodore Ts'o
fe5b72d15e
rehash.c (e2fsck_rehash_dir): Apply patch from Christopher Li
...
which avoids creating an empty directory entry at the end
of the directory block. This screws up earlier versions
of the indexed directory patch.
2002-09-29 19:05:26 -04:00
Theodore Ts'o
e70ae99e07
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.
2002-09-28 09:16:28 -04:00
Theodore Ts'o
c663305947
Update for 1.29 release.
2002-09-24 01:26:50 -04:00
Theodore Ts'o
cf3909edfe
rehash.c (copy_dir_entries): Fix bug which caused corrupted
...
directories if there are 4 or 8 bytes left over in a
directory page when optimizing/reindexing a directory.
2002-09-06 10:14:12 -04:00
Theodore Ts'o
87ee8dcad3
Update changelogs for 1.28 release
2002-08-31 03:02:57 -04:00
Theodore Ts'o
ceecbc75c3
ehandler.c (e2fsck_handle_read_error): If the user asks to
...
ignore the error, offer to try forcing a write of the
block to the disk; sometimes this will cause the drive to
remap the bad block.
2002-08-31 02:35:35 -04:00
Theodore Ts'o
ea1959f015
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.
2002-08-31 02:32:41 -04:00
Theodore Ts'o
a3da9d1df7
problem.c: Fix PR_1_RELOC_BLOCK_ALLOCATE message to explain that
...
it is necessary to find contiguous blocks in a particular
block group.
2002-08-21 12:52:03 -04:00
Theodore Ts'o
f044b4d8a0
Update and clarify man pages (addresses Debian Bug #145044 ).
...
Let e2fsck allow use of the TEA hash.
Mke2fs will no longer abort if it can't zero blocks at the end of the
filesystem. (Addresses Debian Bug #155007 )
2002-08-17 13:32:21 -04:00
Theodore Ts'o
0684a4f33b
Overhaul extended attribute handling. Should now be correct with
...
respect to the latest V2 bestbits ACL code.
2002-08-17 10:19:44 -04:00
Theodore Ts'o
838e773e7a
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.
2002-08-01 12:37:00 -04:00
Theodore Ts'o
850d05e9aa
Add e2fsck -D option which optimizes/compresses directories.
...
General cleanup of rehash code. (Fixed a few bugs, reformatted
code to make it more maintainable, etc.)
2002-07-25 00:00:08 -04:00
Theodore Ts'o
542867fb70
util.c (ask_yn, read_a_char): Note when the user has typed ^C,
...
and abort processing by longjmp'ing to ctx->abort_loc.
2002-07-24 07:42:02 -04:00
Theodore Ts'o
3214a453db
pass1.c (e2fsck_pass1): If e2fsck is run with -n, don't create
...
the dirs_to_hash list, since we don't want to reindex
directories if the filesystem is opened read-only.
2002-07-23 12:00:00 -04:00
Theodore Ts'o
4cae04529e
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.
2002-07-21 14:14:03 -04:00
Theodore Ts'o
b7a00563b2
Add support to e2fsck to reindex directories to use hash trees.
2002-07-20 00:28:07 -04:00
Theodore Ts'o
62acaa1de1
pass2.c (e2fsck_pass2): Use dx_dir->numblocks instead of
...
dx_dir->ino to indicate that a bad inode was cleared.
2002-07-15 16:54:42 -04:00
Theodore Ts'o
503f9e7f6e
Add support for the half-MD4 HTREE hash.
...
Add HTREE root node tests.
2002-06-26 16:52:10 -04:00
Theodore Ts'o
8fdc9985c1
Add initial support for htree directories.
2002-06-25 23:26:34 -04:00
Andreas Dilger
b21bf26778
Do sanity checking of the number of blocks and inodes in a group for
...
8192-byte and 16384-byte blocksize filesystems.
Change the default bytes-per-inode ratio of a new filesystem to be at most
one inode per block for large blocksizes.
2002-06-10 11:05:56 -06:00
Theodore Ts'o
0d63467ddb
Update to support the V2 Bestbits EA format.
2002-05-22 00:22:38 -04:00
Theodore Ts'o
da307041e7
Check for inodes which are too big (either too many blocks, or
...
would cause i_size to be too big), and offer to truncate the inode.
Remove old bogus i_size checks.
Add test case which tests e2fsck's handling of large sparse files.
Older e2fsck with the old(er) bogus i_size checks didn't handle
this correctly.
2002-05-21 21:19:14 -04:00
Theodore Ts'o
bcf9c5d401
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.
2002-05-21 09:14:17 -04:00
Theodore Ts'o
31e29a12d1
Fix up Andreas's 8k blocksize changes to fix a number of bugs,
...
and to make the page size determined at run-time instead of
compile time.
2002-05-17 10:53:07 -04:00
Theodore Ts'o
a8e772498c
Update for 1.27 release.
2002-03-08 03:12:14 -05:00
Theodore Ts'o
546a1ff18c
Fix various gcc -Wall complaints.
2002-03-07 23:52:56 -05:00
Theodore Ts'o
f2d5c93703
Fixed the journal handling so that an offer is made to clear the
...
journal filesystem in all cases.
Fixed a bug in e2fsck which caused it to give spurious I/O manager
bad messages right before crashes.
2002-03-07 03:13:07 -05:00
Theodore Ts'o
f122632e6b
E2fsck now prints ranges in pass 5 when printing deltas in
...
the block and inode bitmaps.
2002-03-07 02:47:07 -05:00
Theodore Ts'o
14308a5398
Newer libintl needs LC_CTYPE to be set in addition to LC_MESSAGES.
2002-03-05 03:26:52 -05:00
Theodore Ts'o
57173d0feb
Update Changelog messages to use tytso@mit.edu for all addresses
...
after September 7, 2001. (Forgot to update my emacs file to get
rid of the tytso@valinux.com address. Oops.)
2002-02-26 14:59:39 -05:00
Theodore Ts'o
b9f409255e
Update makefiles to install mkfs.ext3, and to install man pages for
...
mkfs.ext2/3 and fsck.ext2/3. Also remove any compressed man pages
before installing the man pages.
2002-02-24 03:08:57 -05:00
Theodore Ts'o
d1a2182a18
Cleaned up journal handling code in e2fsck.
...
Fixed up two minor memory leaks.
2002-02-22 00:17:59 -05:00
Theodore Ts'o
a5f3f5c191
Update files for 1.26 release.
2002-02-03 01:00:22 -05:00
Theodore Ts'o
3ed57c27df
In mke2fs and e2fsck, specifying the -c option twice will now do
...
a read/write test on the disk. Update the man pages to encourage
using the -c option, and to discouraging running badblocks separately,
since users tend to forget to set the blocksize when running
badblocks.
2001-12-24 15:01:59 -05:00
Theodore Ts'o
f1a1761d67
Enhnaced the get backup superblock function so that it does
...
the right thing if the filesystem superblock is unavailable;
it will search for the superblock by iterating over possible
blocksizes.
2001-12-23 22:27:52 -05:00
Theodore Ts'o
19007e51a5
Move linux/jbd.h to ext2fs/kernel-jbd.h, to avoid using the
...
system header file version of hbd.h when using diet glibc
(since it forcibly adds /usr/include to the beginning of include
search path.)
2001-12-23 19:33:51 -05:00
Theodore Ts'o
6a50c5ed57
Use ctx->filesystem_name if the ctx->device_name is NULL in e2fsck.
2001-12-21 23:29:35 -05:00
Theodore Ts'o
d37066a9fa
Give the opportunity for e2fsck to run the journal even if
...
recovery flag is cleared. If we're using a backup
superblock, run the journal by default.
2001-12-21 23:28:54 -05:00
Theodore Ts'o
4ea7bd0439
Fix various gcc -Wall nits. Fixed a bug in mke2fs where a bogus
...
error message could be printed on an malloc() failure, and e2image
was optimized to avoid needless system calls by using the stashed
inode functions.
2001-12-16 23:23:37 -05:00
Theodore Ts'o
8cf93332d1
Fix e2fsck's handling of external journals,and update journal
...
recovery files from 2.4.17-pre8.
2001-12-16 02:23:36 -05:00
Gabriel Paubert
b3b3d465b1
journal.c: fix an endianness bug.
...
f_badorphan: revert previous, erroneous change.
2001-11-30 13:45:28 +01:00
Theodore Ts'o
24bfb443fc
super.c (check_super_block): Make sure that if the inode table
...
or allocation bitmap is zero, that it is marked as
invalid, so that in pass #1 , a new bitmap/inode table gets
properly allocated. (Addresses Debian Bug #116975 )
2001-11-26 15:51:14 -05:00
Theodore Ts'o
1e9a7e0278
2fsck.8.in: Fix minor typo in man page and clarify device
...
specification.
2001-11-24 16:40:57 -05:00
Theodore Ts'o
62e3e7fe4f
journal.c (clear_v2_journal_fields, e2fsck_journal_load): If the
...
V2 fields are set on a V1 journal superblock, or an
internal V2 journal has s_nr_users is non-zero, clear the
entire journal superblock beyond the V1 superblock. This
fixes botched V1->V2 updates.
problem.c, problem.h (PR_0_CLEAR_V2_JOURNAL): Add new problem code.
f_bad_local_jnl: New test which tests for a V2 journal with bad
fields caused by a botched V1->V2 upgrade.
2001-10-07 02:13:30 -04:00
Theodore Ts'o
773fd8a1d4
e2fsck.h, journal.c (e2fsck_move_ext3_journal): Add new function
...
which will automatically relocate the ext3 journal from a
visible file to an invisible journal file if the
filesystem has been opened read/write.
super.c (check_super_block): Add call to e2fsck_move_ext3_journal
problem.c, problem.h (PR_0_MOVE_JOURNAL, PR_0_ERR_MOVE_JOURNAL):
Add new problem codes.
2001-10-06 21:26:27 -04:00
Theodore Ts'o
fbf9111216
Update changelogs for 1.25 release.
2001-09-20 10:47:47 -04:00
Theodore Ts'o
ae6cdcf74a
e2fsck: If a superblock is specified explicitly by the
...
user, don't try to automatically fall back to an
alternate superblock.
2001-09-19 15:17:25 -04:00
Theodore Ts'o
fb70775b0f
Update for 1.24a release
2001-09-04 15:00:37 -04:00
Theodore Ts'o
109624a133
Update for 1.24 release.
2001-08-31 00:59:55 -04:00
Theodore Ts'o
b1f204f7f9
pass1.c (e2fsck_pass1): For EXT2_RESIZE_INO, allow its i_mode to
...
either be zero or a regular file (for compatibility with
Andreas's on-line resizing programs).
2001-08-30 16:42:09 -04:00
Theodore Ts'o
0f8973fb09
Remove EXT2FS_VERSION from the version display, since it
...
only confuses people.
Make fsck's version display be consistent with the other e2fsprogs
programs.
2001-08-27 12:44:23 -04:00
Theodore Ts'o
943ed874fc
Add missing log entry showing when we released e2fsprogs 1.23
2001-08-27 12:29:22 -04:00
Theodore Ts'o
53abed0afa
Deal with libc5's lack of strnlen.
...
Stop checking for strdup in the configure script since we don't
care about that symbol.
2001-08-27 12:18:16 -04:00
Theodore Ts'o
eb4ab51044
super.c (release_orphan_inodes): If the filesystem contains
...
errors, don't run the orphan * list, since the orphan list
can't be trusted.
2001-08-13 10:58:41 -04:00
Theodore Ts'o
a40ecbb1fc
e2fsck/pass1.c (e2fsck_pass1_check_device_inode): If i_blocks is
...
non-zero, then assume that the device/socket/fifo inode
is bogus.
2001-08-13 06:15:36 -04:00
Theodore Ts'o
85645a6ff3
pass1.c (check_size): Fix logic in check_size; the previous code
...
only offered to clear the inode size fields if both size
and i_size_high were zero.
2001-08-13 06:11:39 -04:00
Theodore Ts'o
a474269147
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.
2001-08-09 04:14:04 -04:00
Theodore Ts'o
2b94c658c7
unix.c (show_stats): Print the number of large files in verbose mode.
2001-08-09 04:08:52 -04:00
Theodore Ts'o
c0a083fac3
* journal.c (recover_ext3_journal): If s_errno is set in the
...
journal superblock, set the EXT2_ERROR_FS flag in the
filesystem superblock after the journal is run.
2001-08-07 10:17:41 -04:00
Theodore Ts'o
bd512b6868
Add ChangeLog entry for changes made by Andreas
2001-08-04 21:33:03 -04:00
Theodore Ts'o
d007cb4cbb
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.
2001-08-04 20:39:39 -04:00
Theodore Ts'o
83e6ac84c7
unix.c (check_mount): Remove the code in e2fsck which tested for the
...
root filesystem being mounted read-only, and depend on the
results flags from ext2fs_check_if_mounted.
2001-07-30 16:29:52 -04:00
Theodore Ts'o
0628ae3948
unix.c (main): Move the final print_resource_track call after
...
the filesystem and context handle are closed
2001-07-29 12:26:46 -04:00
Theodore Ts'o
6d222f3217
Fix memory leaks in e2fsck's journal.c, and remove some cases
...
which look like memory leaks in unix.c so we can more easily find
the true memory leaks.
2001-07-29 12:06:58 -04:00
Theodore Ts'o
1e16526bd9
e2fsck.c (e2fsck_reset_context): Fix bug; only close the io channel if
...
it is *different* from the filesystem io channel
2001-07-29 11:48:10 -04:00
Theodore Ts'o
a092c563f7
Update problem message printed when special files have the immutable
...
flag set. Update the f_filetype test case.
2001-07-27 22:40:09 -04:00
Theodore Ts'o
fd77b2c78a
pass1.c (e2fsck_pass1): Check for symlinks that have the
...
immutable flag set (and offer to clear them).
2001-07-27 22:10:01 -04:00
Theodore Ts'o
24ceb248ab
pass1.c (e2fsck_pass1): Free ctx->block_ea_map at the end of pass 1.
...
This avoids increasing the memory footprint of e2fsck by 10%!
2001-07-26 09:02:56 -04:00
Theodore Ts'o
14fe1c3314
Apply fixes reported by Andreas Gruenbacher:
...
pass1.c (check_ext_attr): Skip zero-length EA entries.
problem.c: PR_1_EA_ALLOC_COLLISION shouldn't abort, but should prompt
to clear the EA block.
2001-07-25 19:48:24 -04:00
Theodore Ts'o
adee8d75db
Add support for use of an external journal (so long as the external
...
journal only has one filesystem).
2001-07-23 00:17:49 -04:00
Theodore Ts'o
d312401961
unix.c (main): Add an explicit warning when the filesystem is left not
...
completely fixed when e2fsck exits. (Addresses Debian bug #104502.)
2001-07-20 14:13:49 -04:00
Theodore Ts'o
55fd07ed0a
This patch completes the initial extended attribute/ACL support for
...
e2fsck. We now check the entire EA block to make sure that the all
of the EA entries look sane.
2001-07-19 16:31:25 -04:00
Theodore Ts'o
3c6b8977d4
Speed up journal recovery in userspace by avoiding a pointless
...
unconditional ext2_flush() call. Also made ext2_flush() more
efficient when the superblock is modified after the filesystem has
been flushed, and make it clear the superblock dirty flag
after doing the superblock/block group descriptor flush.
2001-07-10 14:27:58 -04:00
Theodore Ts'o
7b63fff9b6
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.)
2001-07-07 23:01:31 -04:00
Theodore Ts'o
7abb2bdcd6
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.
2001-07-07 13:20:34 -04:00
Theodore Ts'o
e8a3ee628a
Add code to check and fix incorrect reference counts in the extended
...
attribute blocks.
2001-07-07 11:12:50 -04:00
Theodore Ts'o
342d847db3
Add initial support for extended attribute blocks
2001-07-02 11:54:09 -04:00
Theodore Ts'o
636a954a30
Use long long to calculate the percentage
...
of the number of blocks in use in the filesystem.
2001-06-29 17:57:26 -04:00
Theodore Ts'o
67960139d7
Update changelogs for 1.22.
2001-06-23 00:16:37 -04:00
Theodore Ts'o
d90f3494b2
e2fsck/flushb.c and lib/ext2fs/flushb.c: Use platform independent
...
method of defining the BLKFLSBUF and FDFLUSH ioctl's.
Also include sys/mount.h since on newer glibc's BLKFLSBUF
is defined there.
2001-06-22 21:01:17 -04:00
Theodore Ts'o
42475e281d
super.c (release_inode_blocks): Don't try to release the blocks if the
...
orphaned inode is a device file, symlink, or some other kind of
special file that doesn't have a block list.
2001-06-22 20:35:38 -04:00
Theodore Ts'o
f4f75bae85
ChangeLog:
...
Update for 1.21 release.
2001-06-16 01:14:28 +00:00
Theodore Ts'o
e333845b2a
RELEASE-NOTES, ChangeLog:
...
Add Debian bug number which got resolved.
2001-06-14 07:11:33 +00:00
Theodore Ts'o
b6a0807b08
ChangeLog, unix.c:
...
unix.c (check_if_skip): Adapted patch from Andreas Dilger which prints
the number of mounts or days elapsed since the last check when e2fsck
is forced to check an otherwise clean filesystem.
2001-06-14 01:16:17 +00:00