mirror of
https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
synced 2024-11-23 10:04:01 +08:00
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.
This commit is contained in:
parent
3f83020370
commit
f2d5c93703
@ -1,4 +1,14 @@
|
||||
2002-03-06 <tytso@snap.thunk.org>
|
||||
2002-03-07 <tytso@snap.thunk.org>
|
||||
|
||||
* unix.c (main): Don't close the filesystem before calling
|
||||
fatal_error(); this just causes a needless warning about a
|
||||
bad I/O manager magic number.
|
||||
|
||||
* journal.c (e2fsck_check_ext3_journal): Offer to clear the inode
|
||||
in case the journal is too small, or the inode number in
|
||||
the superblock doesn't appear to be random.
|
||||
|
||||
2002-03-06 <tytso@mit.edu>
|
||||
|
||||
* problem.h, problem.c: PR_5_BLOCK_RANGE_UNUSED,
|
||||
PR_5_BLOCK_RANGE_USED, PR_5_INODE_RANGE_UNUSED,
|
||||
|
@ -620,7 +620,9 @@ int e2fsck_check_ext3_journal(e2fsck_t ctx)
|
||||
|
||||
retval = e2fsck_get_journal(ctx, &journal);
|
||||
if (retval) {
|
||||
if (retval == EXT2_ET_BAD_INODE_NUM)
|
||||
if ((retval == EXT2_ET_BAD_INODE_NUM) ||
|
||||
(retval == EXT2_ET_JOURNAL_TOO_SMALL) ||
|
||||
(retval == EXT2_ET_NO_JOURNAL))
|
||||
return e2fsck_journal_fix_bad_inode(ctx, &pctx);
|
||||
return retval;
|
||||
}
|
||||
|
@ -831,7 +831,6 @@ restart:
|
||||
com_err(ctx->program_name, retval,
|
||||
_("while checking ext3 journal for %s"),
|
||||
ctx->device_name);
|
||||
ext2fs_close(ctx->fs);
|
||||
fatal_error(ctx, 0);
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,8 @@
|
||||
2002-03-06 <tytso@snap.thunk.org>
|
||||
2002-03-07 <tytso@mit.edu>
|
||||
|
||||
* f_miss_journal, f_extra_journal: Added new test cases.
|
||||
|
||||
2002-03-06 <tytso@mit.edu>
|
||||
|
||||
* f_badorphan, f_badtable, f_bbinode, f_dupsuper, f_expand,
|
||||
f_illbbitmap, f_illibitmap, f_illitable, f_imagic,
|
||||
|
23
tests/f_extra_journal/expect.1
Normal file
23
tests/f_extra_journal/expect.1
Normal file
@ -0,0 +1,23 @@
|
||||
Superblock doesn't have has_journal flag, but has ext3 journal inode.
|
||||
Clear? yes
|
||||
|
||||
Pass 1: Checking inodes, blocks, and sizes
|
||||
Journal inode is not in use, but contains data. Clear? yes
|
||||
|
||||
Pass 2: Checking directory structure
|
||||
Pass 3: Checking directory connectivity
|
||||
Pass 4: Checking reference counts
|
||||
Pass 5: Checking group summary information
|
||||
Block bitmap differences: -(50--1079)
|
||||
Fix? yes
|
||||
|
||||
Free blocks count wrong for group #0 (968, counted=1998).
|
||||
Fix? yes
|
||||
|
||||
Free blocks count wrong (968, counted=1998).
|
||||
Fix? yes
|
||||
|
||||
|
||||
test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
|
||||
test_filesys: 11/256 files (0.0% non-contiguous), 50/2048 blocks
|
||||
Exit status is 1
|
7
tests/f_extra_journal/expect.2
Normal file
7
tests/f_extra_journal/expect.2
Normal file
@ -0,0 +1,7 @@
|
||||
Pass 1: Checking inodes, blocks, and sizes
|
||||
Pass 2: Checking directory structure
|
||||
Pass 3: Checking directory connectivity
|
||||
Pass 4: Checking reference counts
|
||||
Pass 5: Checking group summary information
|
||||
test_filesys: 11/256 files (0.0% non-contiguous), 50/2048 blocks
|
||||
Exit status is 0
|
BIN
tests/f_extra_journal/image.gz
Normal file
BIN
tests/f_extra_journal/image.gz
Normal file
Binary file not shown.
1
tests/f_extra_journal/name
Normal file
1
tests/f_extra_journal/name
Normal file
@ -0,0 +1 @@
|
||||
Valid journal inode, but has_journal feature not present
|
23
tests/f_miss_journal/expect.1
Normal file
23
tests/f_miss_journal/expect.1
Normal file
@ -0,0 +1,23 @@
|
||||
Superblock has a bad ext3 journal (inode 8).
|
||||
Clear? yes
|
||||
|
||||
*** ext3 journal has been deleted - filesystem is now ext2 only ***
|
||||
|
||||
Pass 1: Checking inodes, blocks, and sizes
|
||||
Pass 2: Checking directory structure
|
||||
Pass 3: Checking directory connectivity
|
||||
Pass 4: Checking reference counts
|
||||
Pass 5: Checking group summary information
|
||||
Block bitmap differences: -(50--1079)
|
||||
Fix? yes
|
||||
|
||||
Free blocks count wrong for group #0 (968, counted=1998).
|
||||
Fix? yes
|
||||
|
||||
Free blocks count wrong (968, counted=1998).
|
||||
Fix? yes
|
||||
|
||||
|
||||
test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
|
||||
test_filesys: 11/256 files (0.0% non-contiguous), 50/2048 blocks
|
||||
Exit status is 1
|
7
tests/f_miss_journal/expect.2
Normal file
7
tests/f_miss_journal/expect.2
Normal file
@ -0,0 +1,7 @@
|
||||
Pass 1: Checking inodes, blocks, and sizes
|
||||
Pass 2: Checking directory structure
|
||||
Pass 3: Checking directory connectivity
|
||||
Pass 4: Checking reference counts
|
||||
Pass 5: Checking group summary information
|
||||
test_filesys: 11/256 files (0.0% non-contiguous), 50/2048 blocks
|
||||
Exit status is 0
|
BIN
tests/f_miss_journal/image.gz
Normal file
BIN
tests/f_miss_journal/image.gz
Normal file
Binary file not shown.
1
tests/f_miss_journal/name
Normal file
1
tests/f_miss_journal/name
Normal file
@ -0,0 +1 @@
|
||||
Non-existent journal inode
|
BIN
tests/f_swapfs/image
Normal file
BIN
tests/f_swapfs/image
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user