1997-04-29 20:15:03 +04:00
|
|
|
/*
|
|
|
|
* problem.h --- e2fsck problem error codes
|
|
|
|
*
|
|
|
|
* Copyright 1996 by Theodore Ts'o
|
|
|
|
*
|
|
|
|
* %Begin-Header%
|
|
|
|
* This file may be redistributed under the terms of the GNU Public
|
|
|
|
* License.
|
|
|
|
* %End-Header%
|
|
|
|
*/
|
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
typedef __u32 problem_t;
|
|
|
|
|
1997-04-29 20:15:03 +04:00
|
|
|
struct problem_context {
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
errcode_t errcode;
|
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.
2001-01-11 18:12:14 +03:00
|
|
|
ext2_ino_t ino, ino2, dir;
|
1997-04-29 20:15:03 +04:00
|
|
|
struct ext2_inode *inode;
|
|
|
|
struct ext2_dir_entry *dirent;
|
2007-08-21 05:31:11 +04:00
|
|
|
blk64_t blk, blk2;
|
1998-06-11 00:45:22 +04:00
|
|
|
e2_blkcnt_t blkcount;
|
2013-12-03 08:21:31 +04:00
|
|
|
dgrp_t group;
|
2012-03-16 03:29:19 +04:00
|
|
|
__u32 csum1, csum2;
|
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.)
1998-03-24 19:22:38 +03:00
|
|
|
__u64 num;
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
const char *str;
|
1997-04-29 20:15:03 +04:00
|
|
|
};
|
|
|
|
|
|
|
|
/*
|
|
|
|
* We define a set of "latch groups"; these are problems which are
|
|
|
|
* handled as a set. The user answers once for a particular latch
|
|
|
|
* group.
|
|
|
|
*/
|
ChangeLog, pass1.c, problem.c, problem.h, problemP.h:
pass1.c: Treat inodes with a low dtime (that were from a corrupted
orphan list) specially.
problem.c, problem.h: Add new problem codes PR_1_LOW_DTIME and
PR_1_ORPHAN_LIST_REFUGEES, and a new latch group, PR_LATCH_LOW_DTIME.
problemP.h: Expand the size of the problem flag to be an int instead
of a short. Expand space in the flag word which is reserved for
problem latch flags from 3 bits to 8 bits.
ChangeLog, expect.1, expect.2, image.gz, name:
f_badorphan: New test which verifies corrupted orphan list handling.
2001-05-14 16:47:41 +04:00
|
|
|
#define PR_LATCH_MASK 0x0ff0 /* Latch mask */
|
1997-04-29 20:15:03 +04:00
|
|
|
#define PR_LATCH_BLOCK 0x0010 /* Latch for illegal blocks (pass 1) */
|
|
|
|
#define PR_LATCH_BBLOCK 0x0020 /* Latch for bad block inode blocks (pass 1) */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_LATCH_IBITMAP 0x0030 /* Latch for pass 5 inode bitmap proc. */
|
|
|
|
#define PR_LATCH_BBITMAP 0x0040 /* Latch for pass 5 inode bitmap proc. */
|
|
|
|
#define PR_LATCH_RELOC 0x0050 /* Latch for superblock relocate hint */
|
|
|
|
#define PR_LATCH_DBLOCK 0x0060 /* Latch for pass 1b dup block headers */
|
ChangeLog, pass1.c, problem.c, problem.h, problemP.h:
pass1.c: Treat inodes with a low dtime (that were from a corrupted
orphan list) specially.
problem.c, problem.h: Add new problem codes PR_1_LOW_DTIME and
PR_1_ORPHAN_LIST_REFUGEES, and a new latch group, PR_LATCH_LOW_DTIME.
problemP.h: Expand the size of the problem flag to be an int instead
of a short. Expand space in the flag word which is reserved for
problem latch flags from 3 bits to 8 bits.
ChangeLog, expect.1, expect.2, image.gz, name:
f_badorphan: New test which verifies corrupted orphan list handling.
2001-05-14 16:47:41 +04:00
|
|
|
#define PR_LATCH_LOW_DTIME 0x0070 /* Latch for pass1 orphaned list refugees */
|
2002-05-22 05:19:14 +04:00
|
|
|
#define PR_LATCH_TOOBIG 0x0080 /* Latch for file to big errors */
|
2002-07-25 08:00:08 +04:00
|
|
|
#define PR_LATCH_OPTIMIZE_DIR 0x0090 /* Latch for optimize directories */
|
2009-08-19 09:06:50 +04:00
|
|
|
#define PR_LATCH_BG_CHECKSUM 0x00A0 /* Latch for block group checksums */
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
#define PR_LATCH(x) ((((x) & PR_LATCH_MASK) >> 4) - 1)
|
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/*
|
|
|
|
* Latch group descriptor flags
|
|
|
|
*/
|
|
|
|
#define PRL_YES 0x0001 /* Answer yes */
|
|
|
|
#define PRL_NO 0x0002 /* Answer no */
|
|
|
|
#define PRL_LATCHED 0x0004 /* The latch group is latched */
|
|
|
|
#define PRL_SUPPRESS 0x0008 /* Suppress all latch group questions */
|
|
|
|
|
|
|
|
#define PRL_VARIABLE 0x000f /* All the flags that need to be reset */
|
|
|
|
|
1997-04-29 20:15:03 +04:00
|
|
|
/*
|
|
|
|
* Pre-Pass 1 errors
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* Block bitmap not in group */
|
|
|
|
#define PR_0_BB_NOT_GROUP 0x000001
|
|
|
|
|
|
|
|
/* Inode bitmap not in group */
|
|
|
|
#define PR_0_IB_NOT_GROUP 0x000002
|
|
|
|
|
|
|
|
/* Inode table not in group */
|
|
|
|
#define PR_0_ITABLE_NOT_GROUP 0x000003
|
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Superblock corrupt */
|
|
|
|
#define PR_0_SB_CORRUPT 0x000004
|
|
|
|
|
|
|
|
/* Filesystem size is wrong */
|
|
|
|
#define PR_0_FS_SIZE_WRONG 0x000005
|
|
|
|
|
|
|
|
/* Fragments not supported */
|
|
|
|
#define PR_0_NO_FRAGMENTS 0x000006
|
|
|
|
|
|
|
|
/* Bad blocks_per_group */
|
|
|
|
#define PR_0_BLOCKS_PER_GROUP 0x000007
|
|
|
|
|
|
|
|
/* Bad first_data_block */
|
|
|
|
#define PR_0_FIRST_DATA_BLOCK 0x000008
|
|
|
|
|
|
|
|
/* Adding UUID to filesystem */
|
|
|
|
#define PR_0_ADD_UUID 0x000009
|
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* Relocate hint */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_0_RELOCATE_HINT 0x00000A
|
|
|
|
|
|
|
|
/* Miscellaneous superblock corruption */
|
|
|
|
#define PR_0_MISC_CORRUPT_SUPER 0x00000B
|
2008-03-31 20:16:51 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Error determing physical device size of filesystem */
|
|
|
|
#define PR_0_GETSIZE_ERROR 0x00000C
|
|
|
|
|
1999-06-18 05:09:29 +04:00
|
|
|
/* Inode count in the superblock incorrect */
|
|
|
|
#define PR_0_INODE_COUNT_WRONG 0x00000D
|
|
|
|
|
ChangeLog, problem.c, problem.h, super.c:
problem.c, problem.h (PR_0_HURD_CLEAR_FILETYPE): Add new problem code.
super.c (check_super_block): If the OS type in the superblock is the
Hurd, check to see if the filetype feature is set, and offer to clear
it if so. This needs to be done since the Hurd doesn't properly
support the filetype feature. (And since the hurd allows the
transmogrification of files to special files and vice versa --- for no
good reason that I can understand --- it can't support the filetype
feature for the forseeable future, either.)
ChangeLog, mke2fs.c:
mke2fs.c (main): We forcibly turn off the filetype feature if the OS
is the hurd, since the hurd doesn't support it. (And since the hurd
allows the transmogrification of files to special files and vice versa
--- for no good reason that I can understand --- it can't support the
filetype feature for the forseeable future, either.)
mke2fs.c (proceed_question): Fix reversed sense of proceed_question
that was busted due to the internationalization patch. Fixed bug
where if proceed_question was called twice, the input buffer wasn't
cleared of the previous question's newline.
ChangeLog, expect.1, expect.2, image.gz, name:
f_hurd: Add test for Hurd-specific features (right now, just checks to
make sure the filetype feature is cleared)
ChangeLog, ls.c:
ls.c (list_super): Change the string displayed for the Hurd to be
GNU/Hurd, instead of just "GNU".
2000-05-08 17:33:17 +04:00
|
|
|
/* The Hurd does not support the filetype feature */
|
|
|
|
#define PR_0_HURD_CLEAR_FILETYPE 0x00000E
|
2000-08-14 18:25:19 +04:00
|
|
|
|
|
|
|
/* Journal inode is invalid */
|
|
|
|
#define PR_0_JOURNAL_BAD_INODE 0x00000F
|
|
|
|
|
2001-07-23 08:17:49 +04:00
|
|
|
/* The external journal has multiple filesystems (which we can't handle yet) */
|
|
|
|
#define PR_0_JOURNAL_UNSUPP_MULTIFS 0x000010
|
2000-08-14 18:25:19 +04:00
|
|
|
|
2001-07-23 08:17:49 +04:00
|
|
|
/* Can't find external journal */
|
|
|
|
#define PR_0_CANT_FIND_JOURNAL 0x000011
|
2000-08-14 18:25:19 +04:00
|
|
|
|
2001-07-23 08:17:49 +04:00
|
|
|
/* External journal has bad superblock */
|
|
|
|
#define PR_0_EXT_JOURNAL_BAD_SUPER 0x000012
|
2000-08-14 18:25:19 +04:00
|
|
|
|
|
|
|
/* Superblock has a bad journal UUID */
|
|
|
|
#define PR_0_JOURNAL_BAD_UUID 0x000013
|
|
|
|
|
|
|
|
/* Journal has an unknown superblock type */
|
|
|
|
#define PR_0_JOURNAL_UNSUPP_SUPER 0x000014
|
|
|
|
|
|
|
|
/* Journal superblock is corrupt */
|
|
|
|
#define PR_0_JOURNAL_BAD_SUPER 0x000015
|
|
|
|
|
|
|
|
/* Journal superblock is corrupt */
|
|
|
|
#define PR_0_JOURNAL_HAS_JOURNAL 0x000016
|
|
|
|
|
|
|
|
/* Superblock has recovery flag set but no journal */
|
|
|
|
#define PR_0_JOURNAL_RECOVER_SET 0x000017
|
|
|
|
|
2001-12-22 07:28:54 +03:00
|
|
|
/* Journal has data, but recovery flag is clear */
|
|
|
|
#define PR_0_JOURNAL_RECOVERY_CLEAR 0x000018
|
2000-08-14 18:25:19 +04:00
|
|
|
|
2001-12-22 07:28:54 +03:00
|
|
|
/* Ask if we should clear the journal */
|
|
|
|
#define PR_0_JOURNAL_RESET_JOURNAL 0x000019
|
2000-08-14 18:25:19 +04:00
|
|
|
|
2000-12-13 21:07:23 +03:00
|
|
|
/* Filesystem revision is 0, but feature flags are set */
|
|
|
|
#define PR_0_FS_REV_LEVEL 0x00001A
|
|
|
|
|
ChangeLog, journal.c, message.c, problem.c, problem.h, super.c:
journal.c (e2fsck_journal_load): Fix **nasty** bug which caused
e2fsck_check_ext3_journal to smash the journal because
journal->j_transaction_sequence wasn't getting initialized.
journal.c: (recover_ext3_journal, e2fsck_run_ext3_journal): Move call
to e2fsck_clear_recover from recover_ext3_journal to after the
filesystem has been closed and reopened. Otherwise, the superblock in
the filesystem handle will probably be stale, and will overwrite the
newer version of the superblock written by the log recovery.
message.c (expand_inode_expression): Add support for %Iu and %Ig
problem.h (PR_0_CLEAR_ORPHAN_INODE): Add new problem code.
super.c (release_orphan_inodes, release_inode_block,
release_inode_blocks): Update the block group descriptor counts when
freeing the orphan inode. Use PR_0_CLEAR_ORPHAN_INODE to report when
we clear an orphan.
journal.c (e2fsck_run_ext3_journal): Fix a bug where we attempted to
reopen the filesystem using the device name instead of the filesystem
name.
2000-08-21 02:06:31 +04:00
|
|
|
/* Clearing orphan inode */
|
2000-10-25 05:38:50 +04:00
|
|
|
#define PR_0_ORPHAN_CLEAR_INODE 0x000020
|
2008-03-31 20:16:51 +04:00
|
|
|
|
Many files:
Makefile.in: Update the make dependencies
problem.c, problem.h: Add the problem codes:
PR_0_ORPHAN_ILLEGAL_BLOCK_NUM, PR_0_ORPHAN_ALREADY_CLEARED_BLOCK,
PR_0_ORPHAN_ILLEGAL_HEAD_INODE, PR_0_ORPHAN_ILLEGAL_INODE,
PR_0_ORPHAN_INODE_INUSE
super.c (release_inode_blocks, release_orphan_inodes,
check_super_block): Add support for clearing orphaned inodes from the
unmounted filesystem.
journal.c (e2fsck_recover_ext3_journal): Remove the last orphan check;
this is now handled in check_super_block --- non-journaled filesystems
can use the orphan list in the future. Also, move the the re-opening
of the filesystem to e2fsck_run_ext3_journal().
debugfs.c:
debugfs.c (finish_range): Make sure the pager FILE pointer to use.
configure, configure.in, ChangeLog:
configure.in (JFS_DEBUG): Add support for --enable-jfs-debug
2000-08-18 19:08:37 +04:00
|
|
|
/* Illegal block found in orphaned inode */
|
ChangeLog, journal.c, message.c, problem.c, problem.h, super.c:
journal.c (e2fsck_journal_load): Fix **nasty** bug which caused
e2fsck_check_ext3_journal to smash the journal because
journal->j_transaction_sequence wasn't getting initialized.
journal.c: (recover_ext3_journal, e2fsck_run_ext3_journal): Move call
to e2fsck_clear_recover from recover_ext3_journal to after the
filesystem has been closed and reopened. Otherwise, the superblock in
the filesystem handle will probably be stale, and will overwrite the
newer version of the superblock written by the log recovery.
message.c (expand_inode_expression): Add support for %Iu and %Ig
problem.h (PR_0_CLEAR_ORPHAN_INODE): Add new problem code.
super.c (release_orphan_inodes, release_inode_block,
release_inode_blocks): Update the block group descriptor counts when
freeing the orphan inode. Use PR_0_CLEAR_ORPHAN_INODE to report when
we clear an orphan.
journal.c (e2fsck_run_ext3_journal): Fix a bug where we attempted to
reopen the filesystem using the device name instead of the filesystem
name.
2000-08-21 02:06:31 +04:00
|
|
|
#define PR_0_ORPHAN_ILLEGAL_BLOCK_NUM 0x000021
|
Many files:
Makefile.in: Update the make dependencies
problem.c, problem.h: Add the problem codes:
PR_0_ORPHAN_ILLEGAL_BLOCK_NUM, PR_0_ORPHAN_ALREADY_CLEARED_BLOCK,
PR_0_ORPHAN_ILLEGAL_HEAD_INODE, PR_0_ORPHAN_ILLEGAL_INODE,
PR_0_ORPHAN_INODE_INUSE
super.c (release_inode_blocks, release_orphan_inodes,
check_super_block): Add support for clearing orphaned inodes from the
unmounted filesystem.
journal.c (e2fsck_recover_ext3_journal): Remove the last orphan check;
this is now handled in check_super_block --- non-journaled filesystems
can use the orphan list in the future. Also, move the the re-opening
of the filesystem to e2fsck_run_ext3_journal().
debugfs.c:
debugfs.c (finish_range): Make sure the pager FILE pointer to use.
configure, configure.in, ChangeLog:
configure.in (JFS_DEBUG): Add support for --enable-jfs-debug
2000-08-18 19:08:37 +04:00
|
|
|
|
|
|
|
/* Already cleared block found in orphaned inode */
|
ChangeLog, journal.c, message.c, problem.c, problem.h, super.c:
journal.c (e2fsck_journal_load): Fix **nasty** bug which caused
e2fsck_check_ext3_journal to smash the journal because
journal->j_transaction_sequence wasn't getting initialized.
journal.c: (recover_ext3_journal, e2fsck_run_ext3_journal): Move call
to e2fsck_clear_recover from recover_ext3_journal to after the
filesystem has been closed and reopened. Otherwise, the superblock in
the filesystem handle will probably be stale, and will overwrite the
newer version of the superblock written by the log recovery.
message.c (expand_inode_expression): Add support for %Iu and %Ig
problem.h (PR_0_CLEAR_ORPHAN_INODE): Add new problem code.
super.c (release_orphan_inodes, release_inode_block,
release_inode_blocks): Update the block group descriptor counts when
freeing the orphan inode. Use PR_0_CLEAR_ORPHAN_INODE to report when
we clear an orphan.
journal.c (e2fsck_run_ext3_journal): Fix a bug where we attempted to
reopen the filesystem using the device name instead of the filesystem
name.
2000-08-21 02:06:31 +04:00
|
|
|
#define PR_0_ORPHAN_ALREADY_CLEARED_BLOCK 0x000022
|
2008-03-31 20:16:51 +04:00
|
|
|
|
Many files:
Makefile.in: Update the make dependencies
problem.c, problem.h: Add the problem codes:
PR_0_ORPHAN_ILLEGAL_BLOCK_NUM, PR_0_ORPHAN_ALREADY_CLEARED_BLOCK,
PR_0_ORPHAN_ILLEGAL_HEAD_INODE, PR_0_ORPHAN_ILLEGAL_INODE,
PR_0_ORPHAN_INODE_INUSE
super.c (release_inode_blocks, release_orphan_inodes,
check_super_block): Add support for clearing orphaned inodes from the
unmounted filesystem.
journal.c (e2fsck_recover_ext3_journal): Remove the last orphan check;
this is now handled in check_super_block --- non-journaled filesystems
can use the orphan list in the future. Also, move the the re-opening
of the filesystem to e2fsck_run_ext3_journal().
debugfs.c:
debugfs.c (finish_range): Make sure the pager FILE pointer to use.
configure, configure.in, ChangeLog:
configure.in (JFS_DEBUG): Add support for --enable-jfs-debug
2000-08-18 19:08:37 +04:00
|
|
|
/* Illegal orphan inode in superblock */
|
ChangeLog, journal.c, message.c, problem.c, problem.h, super.c:
journal.c (e2fsck_journal_load): Fix **nasty** bug which caused
e2fsck_check_ext3_journal to smash the journal because
journal->j_transaction_sequence wasn't getting initialized.
journal.c: (recover_ext3_journal, e2fsck_run_ext3_journal): Move call
to e2fsck_clear_recover from recover_ext3_journal to after the
filesystem has been closed and reopened. Otherwise, the superblock in
the filesystem handle will probably be stale, and will overwrite the
newer version of the superblock written by the log recovery.
message.c (expand_inode_expression): Add support for %Iu and %Ig
problem.h (PR_0_CLEAR_ORPHAN_INODE): Add new problem code.
super.c (release_orphan_inodes, release_inode_block,
release_inode_blocks): Update the block group descriptor counts when
freeing the orphan inode. Use PR_0_CLEAR_ORPHAN_INODE to report when
we clear an orphan.
journal.c (e2fsck_run_ext3_journal): Fix a bug where we attempted to
reopen the filesystem using the device name instead of the filesystem
name.
2000-08-21 02:06:31 +04:00
|
|
|
#define PR_0_ORPHAN_ILLEGAL_HEAD_INODE 0x000023
|
Many files:
Makefile.in: Update the make dependencies
problem.c, problem.h: Add the problem codes:
PR_0_ORPHAN_ILLEGAL_BLOCK_NUM, PR_0_ORPHAN_ALREADY_CLEARED_BLOCK,
PR_0_ORPHAN_ILLEGAL_HEAD_INODE, PR_0_ORPHAN_ILLEGAL_INODE,
PR_0_ORPHAN_INODE_INUSE
super.c (release_inode_blocks, release_orphan_inodes,
check_super_block): Add support for clearing orphaned inodes from the
unmounted filesystem.
journal.c (e2fsck_recover_ext3_journal): Remove the last orphan check;
this is now handled in check_super_block --- non-journaled filesystems
can use the orphan list in the future. Also, move the the re-opening
of the filesystem to e2fsck_run_ext3_journal().
debugfs.c:
debugfs.c (finish_range): Make sure the pager FILE pointer to use.
configure, configure.in, ChangeLog:
configure.in (JFS_DEBUG): Add support for --enable-jfs-debug
2000-08-18 19:08:37 +04:00
|
|
|
|
|
|
|
/* Illegal inode in orphaned inode list */
|
2009-04-28 22:59:07 +04:00
|
|
|
#define PR_0_ORPHAN_ILLEGAL_INODE 0x000024
|
Many files:
Makefile.in: Update the make dependencies
problem.c, problem.h: Add the problem codes:
PR_0_ORPHAN_ILLEGAL_BLOCK_NUM, PR_0_ORPHAN_ALREADY_CLEARED_BLOCK,
PR_0_ORPHAN_ILLEGAL_HEAD_INODE, PR_0_ORPHAN_ILLEGAL_INODE,
PR_0_ORPHAN_INODE_INUSE
super.c (release_inode_blocks, release_orphan_inodes,
check_super_block): Add support for clearing orphaned inodes from the
unmounted filesystem.
journal.c (e2fsck_recover_ext3_journal): Remove the last orphan check;
this is now handled in check_super_block --- non-journaled filesystems
can use the orphan list in the future. Also, move the the re-opening
of the filesystem to e2fsck_run_ext3_journal().
debugfs.c:
debugfs.c (finish_range): Make sure the pager FILE pointer to use.
configure, configure.in, ChangeLog:
configure.in (JFS_DEBUG): Add support for --enable-jfs-debug
2000-08-18 19:08:37 +04:00
|
|
|
|
ChangeLog, e2fsck.h, journal.c, problem.c, problem.h, super.c:
super.c (check_super_block): Be more strict on checking
s_r_blocks_count superblock field.
problem.c, problem.h (PR_0_JOURNAL_UNSUPP_ROCOMPAT,
PR_0_JOURNAL_UNSUPP_INCOMPAT, PR_0_JOURNAL_RESET_COMPAT): New problem
codes.
journal.c (e2fsck_journal_load): Use a problem code to report
unsupported feature flags. There is code to clear unsupported flags,
but since this is dangerous, it's not allowed in the problem code
table.
journal.c (e2fsck_journal_reset_super): initialize the journal
sequence number to a random value to avoid recovering bad transactions
from a corrupt journal.
2001-05-14 08:06:56 +04:00
|
|
|
/* Journal has unsupported read-only feature - abort */
|
|
|
|
#define PR_0_JOURNAL_UNSUPP_ROCOMPAT 0x000025
|
|
|
|
|
|
|
|
/* Journal has unsupported incompatible feature - abort */
|
|
|
|
#define PR_0_JOURNAL_UNSUPP_INCOMPAT 0x000026
|
|
|
|
|
2001-05-24 02:19:47 +04:00
|
|
|
/* Journal has unsupported version number */
|
2001-06-02 04:38:40 +04:00
|
|
|
#define PR_0_JOURNAL_UNSUPP_VERSION 0x000027
|
2001-05-24 02:19:47 +04:00
|
|
|
|
2001-10-07 05:26:27 +04:00
|
|
|
/* Moving journal to hidden file */
|
|
|
|
#define PR_0_MOVE_JOURNAL 0x000028
|
|
|
|
|
|
|
|
/* Error moving journal */
|
|
|
|
#define PR_0_ERR_MOVE_JOURNAL 0x000029
|
|
|
|
|
2001-10-07 10:13:30 +04:00
|
|
|
/* Clearing V2 journal superblock */
|
|
|
|
#define PR_0_CLEAR_V2_JOURNAL 0x00002A
|
|
|
|
|
2001-12-22 07:28:54 +03:00
|
|
|
/* Run journal anyway */
|
|
|
|
#define PR_0_JOURNAL_RUN 0x00002B
|
|
|
|
|
|
|
|
/* Run journal anyway by default */
|
|
|
|
#define PR_0_JOURNAL_RUN_DEFAULT 0x00002C
|
|
|
|
|
2003-08-21 08:40:26 +04:00
|
|
|
/* Backup journal inode blocks */
|
|
|
|
#define PR_0_BACKUP_JNL 0x00002D
|
|
|
|
|
2004-12-17 04:13:45 +03:00
|
|
|
/* Reserved blocks w/o resize_inode */
|
|
|
|
#define PR_0_NONZERO_RESERVED_GDT_BLOCKS 0x00002E
|
|
|
|
|
|
|
|
/* Resize_inode not enabled, but resize inode is non-zero */
|
|
|
|
#define PR_0_CLEAR_RESIZE_INODE 0x00002F
|
|
|
|
|
2004-12-24 09:42:22 +03:00
|
|
|
/* Resize inode invalid */
|
|
|
|
#define PR_0_RESIZE_INODE_INVALID 0x000030
|
|
|
|
|
2005-09-25 05:59:45 +04:00
|
|
|
/* Last mount time is in the future */
|
|
|
|
#define PR_0_FUTURE_SB_LAST_MOUNT 0x000031
|
|
|
|
|
|
|
|
/* Last write time is in the future */
|
|
|
|
#define PR_0_FUTURE_SB_LAST_WRITE 0x000032
|
|
|
|
|
2006-03-10 23:25:59 +03:00
|
|
|
/* Superblock hint for external journal incorrect */
|
|
|
|
#define PR_0_EXTERNAL_JOURNAL_HINT 0x000033
|
|
|
|
|
2006-11-12 06:32:35 +03:00
|
|
|
/* Superblock hint for external journal incorrect */
|
|
|
|
#define PR_0_DIRHASH_HINT 0x000034
|
|
|
|
|
2007-10-22 06:04:03 +04:00
|
|
|
/* Group descriptor N checksum is invalid */
|
|
|
|
#define PR_0_GDT_CSUM 0x000035
|
|
|
|
|
|
|
|
/* Group descriptor N marked uninitialized without feature set. */
|
|
|
|
#define PR_0_GDT_UNINIT 0x000036
|
|
|
|
|
2012-02-06 22:47:48 +04:00
|
|
|
/* Block bitmap is not initialised and Inode bitmap is -- NO LONGER USED */
|
|
|
|
/* #define PR_0_BB_UNINIT_IB_INIT 0x000037 */
|
2007-10-22 06:04:03 +04:00
|
|
|
|
|
|
|
/* Group descriptor N has invalid unused inodes count. */
|
|
|
|
#define PR_0_GDT_ITABLE_UNUSED 0x000038
|
|
|
|
|
2008-03-31 20:14:22 +04:00
|
|
|
/* Last group block bitmap is uninitialized. */
|
|
|
|
#define PR_0_BB_UNINIT_LAST 0x000039
|
|
|
|
|
2008-05-23 09:00:19 +04:00
|
|
|
/* Journal transaction found corrupt */
|
|
|
|
#define PR_0_JNL_TXN_CORRUPT 0x00003A
|
|
|
|
|
2008-10-13 07:09:26 +04:00
|
|
|
/* The test_fs filesystem flag is set and ext4 is available */
|
|
|
|
#define PR_0_CLEAR_TESTFS_FLAG 0x00003B
|
|
|
|
|
2009-07-17 07:44:50 +04:00
|
|
|
/* Last mount time is in the future (fudged) */
|
|
|
|
#define PR_0_FUTURE_SB_LAST_MOUNT_FUDGED 0x00003C
|
|
|
|
|
|
|
|
/* Last write time is in the future (fudged) */
|
|
|
|
#define PR_0_FUTURE_SB_LAST_WRITE_FUDGED 0x00003D
|
|
|
|
|
2009-08-19 09:06:50 +04:00
|
|
|
/* Block group checksum (latch question) */
|
|
|
|
#define PR_0_GDT_CSUM_LATCH 0x00003E
|
|
|
|
|
2011-06-16 09:13:42 +04:00
|
|
|
/* Free inodes count wrong */
|
|
|
|
#define PR_0_FREE_INODE_COUNT 0x00003F
|
|
|
|
|
|
|
|
/* Free blocks count wrong */
|
|
|
|
#define PR_0_FREE_BLOCK_COUNT 0x000040
|
|
|
|
|
2011-07-20 22:40:06 +04:00
|
|
|
/* Make quota file hidden */
|
|
|
|
#define PR_0_HIDE_QUOTA 0x000041
|
|
|
|
|
2011-09-24 21:48:55 +04:00
|
|
|
/* Superblock has invalid MMP block. */
|
|
|
|
#define PR_0_MMP_INVALID_BLK 0x000042
|
|
|
|
|
|
|
|
/* Superblock has invalid MMP magic. */
|
|
|
|
#define PR_0_MMP_INVALID_MAGIC 0x000043
|
|
|
|
|
2012-03-22 07:40:24 +04:00
|
|
|
/* Opening file system failed */
|
|
|
|
#define PR_0_OPEN_FAILED 0x000044
|
|
|
|
|
|
|
|
/* Checking group descriptor failed */
|
|
|
|
#define PR_0_CHECK_DESC_FAILED 0x000045
|
2009-07-17 07:44:50 +04:00
|
|
|
|
2013-10-12 05:20:36 +04:00
|
|
|
/* 64bit is set but extents are not set. */
|
|
|
|
#define PR_0_64BIT_WITHOUT_EXTENTS 0x000048
|
|
|
|
|
1997-04-29 20:15:03 +04:00
|
|
|
/*
|
|
|
|
* Pass 1 errors
|
|
|
|
*/
|
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Pass 1: Checking inodes, blocks, and sizes */
|
|
|
|
#define PR_1_PASS_HEADER 0x010000
|
|
|
|
|
1997-04-29 20:15:03 +04:00
|
|
|
/* Root directory is not an inode */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1_ROOT_NO_DIR 0x010001
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Root directory has dtime set */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1_ROOT_DTIME 0x010002
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Reserved inode has bad mode */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1_RESERVED_BAD_MODE 0x010003
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Deleted inode has zero dtime */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1_ZERO_DTIME 0x010004
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Inode in use, but dtime set */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1_SET_DTIME 0x010005
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Zero-length directory */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1_ZERO_LENGTH_DIR 0x010006
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Block bitmap conflicts with some other fs block */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1_BB_CONFLICT 0x010007
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Inode bitmap conflicts with some other fs block */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1_IB_CONFLICT 0x010008
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Inode table conflicts with some other fs block */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1_ITABLE_CONFLICT 0x010009
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Block bitmap is on a bad block */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1_BB_BAD_BLOCK 0x01000A
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Inode bitmap is on a bad block */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1_IB_BAD_BLOCK 0x01000B
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Inode has incorrect i_size */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1_BAD_I_SIZE 0x01000C
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Inode has incorrect i_blocks */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1_BAD_I_BLOCKS 0x01000D
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Illegal block number in inode */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1_ILLEGAL_BLOCK_NUM 0x01000E
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Block number overlaps fs metadata */
|
|
|
|
#define PR_1_BLOCK_OVERLAPS_METADATA 0x01000F
|
|
|
|
|
|
|
|
/* Inode has illegal blocks (latch question) */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1_INODE_BLOCK_LATCH 0x010010
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Too many bad blocks in inode */
|
2009-04-28 22:59:07 +04:00
|
|
|
#define PR_1_TOO_MANY_BAD_BLOCKS 0x010011
|
2008-03-31 20:16:51 +04:00
|
|
|
|
1997-04-29 20:15:03 +04:00
|
|
|
/* Illegal block number in bad block inode */
|
2009-04-28 22:59:07 +04:00
|
|
|
#define PR_1_BB_ILLEGAL_BLOCK_NUM 0x010012
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Bad block inode has illegal blocks (latch question) */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1_INODE_BBLOCK_LATCH 0x010013
|
|
|
|
|
|
|
|
/* Duplicate or bad blocks in use! */
|
|
|
|
#define PR_1_DUP_BLOCKS_PREENSTOP 0x010014
|
2008-03-31 20:16:51 +04:00
|
|
|
|
|
|
|
/* Bad block used as bad block indirect block */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1_BBINODE_BAD_METABLOCK 0x010015
|
|
|
|
|
|
|
|
/* Inconsistency can't be fixed prompt */
|
|
|
|
#define PR_1_BBINODE_BAD_METABLOCK_PROMPT 0x010016
|
2008-03-31 20:16:51 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Bad primary block */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_BAD_PRIMARY_BLOCK 0x010017
|
2008-03-31 20:16:51 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Bad primary block prompt */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_BAD_PRIMARY_BLOCK_PROMPT 0x010018
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
|
|
|
/* Bad primary superblock */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_BAD_PRIMARY_SUPERBLOCK 0x010019
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
|
|
|
/* Bad primary block group descriptors */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_BAD_PRIMARY_GROUP_DESCRIPTOR 0x01001A
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
|
|
|
/* Bad superblock in group */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_BAD_SUPERBLOCK 0x01001B
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
|
|
|
/* Bad block group descriptors in group */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_BAD_GROUP_DESCRIPTORS 0x01001C
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* Block claimed for no reason */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_PROGERR_CLAIMED_BLOCK 0x01001D
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
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.
1997-11-14 08:23:04 +03:00
|
|
|
/* Error allocating blocks for relocating metadata */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_RELOC_BLOCK_ALLOCATE 0x01001E
|
2008-03-31 20:16:51 +04:00
|
|
|
|
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.
1997-11-14 08:23:04 +03:00
|
|
|
/* Error allocating block buffer during relocation process */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_RELOC_MEMORY_ALLOCATE 0x01001F
|
2008-03-31 20:16:51 +04:00
|
|
|
|
|
|
|
/* Relocating metadata group information from X to Y */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_RELOC_FROM_TO 0x010020
|
2008-03-31 20:16:51 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Relocating metatdata group information to X */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_RELOC_TO 0x010021
|
2008-03-31 20:16:51 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Block read error during relocation process */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_RELOC_READ_ERR 0x010022
|
2008-03-31 20:16:51 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Block write error during relocation process */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_RELOC_WRITE_ERR 0x010023
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
|
|
|
/* Error allocating inode bitmap */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_ALLOCATE_IBITMAP_ERROR 0x010024
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
|
|
|
/* Error allocating block bitmap */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_ALLOCATE_BBITMAP_ERROR 0x010025
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
|
|
|
/* Error allocating icount structure */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_ALLOCATE_ICOUNT 0x010026
|
2008-03-31 20:16:51 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Error allocating dbcount */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_ALLOCATE_DBCOUNT 0x010027
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
|
|
|
/* Error while scanning inodes */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_ISCAN_ERROR 0x010028
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
|
|
|
/* Error while iterating over blocks */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_BLOCK_ITERATE 0x010029
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* Error while storing inode count information */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_ICOUNT_STORE 0x01002A
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* Error while storing directory block information */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_ADD_DBLOCK 0x01002B
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
|
|
|
/* Error while reading inode (for clearing) */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_READ_INODE 0x01002C
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
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.
1997-11-14 08:23:04 +03:00
|
|
|
/* Suppress messages prompt */
|
2000-12-30 23:33:42 +03:00
|
|
|
#define PR_1_SUPPRESS_MESSAGES 0x01002D
|
1997-04-29 20:15:03 +04:00
|
|
|
|
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.
1999-11-10 16:34:40 +03:00
|
|
|
/* Imagic flag set on an inode when filesystem doesn't support it */
|
|
|
|
#define PR_1_SET_IMAGIC 0x01002F
|
|
|
|
|
|
|
|
/* Immutable flag set on a device or socket inode */
|
|
|
|
#define PR_1_SET_IMMUTABLE 0x010030
|
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.
2000-02-11 18:55:07 +03:00
|
|
|
|
|
|
|
/* Compression flag set on a non-compressed filesystem */
|
|
|
|
#define PR_1_COMPR_SET 0x010031
|
|
|
|
|
2000-05-27 18:40:09 +04:00
|
|
|
/* Non-zero size on on device, fifo or socket inode */
|
|
|
|
#define PR_1_SET_NONZSIZE 0x010032
|
|
|
|
|
2000-12-13 21:07:23 +03:00
|
|
|
/* Filesystem revision is 0, but feature flags are set */
|
|
|
|
#define PR_1_FS_REV_LEVEL 0x010033
|
|
|
|
|
2001-01-03 19:57:24 +03:00
|
|
|
/* Journal inode not in use, needs clearing */
|
2001-01-13 00:53:25 +03:00
|
|
|
#define PR_1_JOURNAL_INODE_NOT_CLEAR 0x010034
|
2001-01-03 19:57:24 +03:00
|
|
|
|
2001-01-13 00:53:25 +03:00
|
|
|
/* Journal inode has wrong mode */
|
|
|
|
#define PR_1_JOURNAL_BAD_MODE 0x010035
|
ChangeLog, pass1.c, problem.c, problem.h, problemP.h:
pass1.c: Treat inodes with a low dtime (that were from a corrupted
orphan list) specially.
problem.c, problem.h: Add new problem codes PR_1_LOW_DTIME and
PR_1_ORPHAN_LIST_REFUGEES, and a new latch group, PR_LATCH_LOW_DTIME.
problemP.h: Expand the size of the problem flag to be an int instead
of a short. Expand space in the flag word which is reserved for
problem latch flags from 3 bits to 8 bits.
ChangeLog, expect.1, expect.2, image.gz, name:
f_badorphan: New test which verifies corrupted orphan list handling.
2001-05-14 16:47:41 +04:00
|
|
|
|
|
|
|
/* Inode that was part of orphan linked list */
|
|
|
|
#define PR_1_LOW_DTIME 0x010036
|
|
|
|
|
|
|
|
/* Latch question which asks how to deal with low dtime inodes */
|
|
|
|
#define PR_1_ORPHAN_LIST_REFUGEES 0x010037
|
2001-07-02 19:54:09 +04:00
|
|
|
|
|
|
|
/* Error allocating refcount structure */
|
|
|
|
#define PR_1_ALLOCATE_REFCOUNT 0x010038
|
2008-03-31 20:16:51 +04:00
|
|
|
|
2001-07-02 19:54:09 +04:00
|
|
|
/* Error reading Extended Attribute block */
|
|
|
|
#define PR_1_READ_EA_BLOCK 0x010039
|
|
|
|
|
|
|
|
/* Invalid Extended Attribute block */
|
|
|
|
#define PR_1_BAD_EA_BLOCK 0x01003A
|
|
|
|
|
2001-07-07 19:12:50 +04:00
|
|
|
/* Error reading Extended Attribute block while fixing refcount -- abort */
|
|
|
|
#define PR_1_EXTATTR_READ_ABORT 0x01003B
|
|
|
|
|
|
|
|
/* Extended attribute reference count incorrect */
|
|
|
|
#define PR_1_EXTATTR_REFCOUNT 0x01003C
|
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* Error writing Extended Attribute block while fixing refcount */
|
2010-05-13 02:58:53 +04:00
|
|
|
#define PR_1_EXTATTR_WRITE_ABORT 0x01003D
|
2001-07-20 00:31:25 +04:00
|
|
|
|
|
|
|
/* Multiple EA blocks not supported */
|
|
|
|
#define PR_1_EA_MULTI_BLOCK 0x01003E
|
|
|
|
|
|
|
|
/* Error allocating EA region allocation structure */
|
2010-05-13 02:58:53 +04:00
|
|
|
#define PR_1_EA_ALLOC_REGION_ABORT 0x01003F
|
2002-05-18 23:16:30 +04:00
|
|
|
|
2001-07-20 00:31:25 +04:00
|
|
|
/* Error EA allocation collision */
|
|
|
|
#define PR_1_EA_ALLOC_COLLISION 0x010040
|
2002-05-18 23:16:30 +04:00
|
|
|
|
2001-07-20 00:31:25 +04:00
|
|
|
/* Bad extended attribute name */
|
|
|
|
#define PR_1_EA_BAD_NAME 0x010041
|
|
|
|
|
|
|
|
/* Bad extended attribute value */
|
2002-05-18 23:16:30 +04:00
|
|
|
#define PR_1_EA_BAD_VALUE 0x010042
|
|
|
|
|
2002-05-22 05:19:14 +04:00
|
|
|
/* Inode too big (latch question) */
|
|
|
|
#define PR_1_INODE_TOOBIG 0x010043
|
|
|
|
|
|
|
|
/* Directory too big */
|
|
|
|
#define PR_1_TOOBIG_DIR 0x010044
|
|
|
|
|
|
|
|
/* Regular file too big */
|
|
|
|
#define PR_1_TOOBIG_REG 0x010045
|
|
|
|
|
|
|
|
/* Symlink too big */
|
|
|
|
#define PR_1_TOOBIG_SYMLINK 0x010046
|
|
|
|
|
2002-06-26 07:26:34 +04:00
|
|
|
/* INDEX_FL flag set on a non-HTREE filesystem */
|
|
|
|
#define PR_1_HTREE_SET 0x010047
|
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* INDEX_FL flag set on a non-directory */
|
2002-06-27 00:52:10 +04:00
|
|
|
#define PR_1_HTREE_NODIR 0x010048
|
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* Invalid root node in HTREE directory */
|
2002-06-27 00:52:10 +04:00
|
|
|
#define PR_1_HTREE_BADROOT 0x010049
|
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* Unsupported hash version in HTREE directory */
|
2002-06-27 00:52:10 +04:00
|
|
|
#define PR_1_HTREE_HASHV 0x01004A
|
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* Incompatible flag in HTREE root node */
|
2002-06-27 00:52:10 +04:00
|
|
|
#define PR_1_HTREE_INCOMPAT 0x01004B
|
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* HTREE too deep */
|
2002-06-27 00:52:10 +04:00
|
|
|
#define PR_1_HTREE_DEPTH 0x01004C
|
|
|
|
|
2003-11-21 18:41:58 +03:00
|
|
|
/* Bad block has indirect block that conflicts with filesystem block */
|
|
|
|
#define PR_1_BB_FS_BLOCK 0x01004D
|
|
|
|
|
2004-12-24 09:42:22 +03:00
|
|
|
/* Resize inode failed */
|
|
|
|
#define PR_1_RESIZE_INODE_CREATE 0x01004E
|
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* inode->i_size is too long */
|
2005-03-21 21:15:45 +03:00
|
|
|
#define PR_1_EXTRA_ISIZE 0x01004F
|
|
|
|
|
|
|
|
/* attribute name is too long */
|
|
|
|
#define PR_1_ATTR_NAME_LEN 0x010050
|
|
|
|
|
|
|
|
/* wrong EA value offset */
|
|
|
|
#define PR_1_ATTR_VALUE_OFFSET 0x010051
|
|
|
|
|
|
|
|
/* wrong EA blocknumber */
|
|
|
|
#define PR_1_ATTR_VALUE_BLOCK 0x010052
|
|
|
|
|
|
|
|
/* wrong EA value size */
|
|
|
|
#define PR_1_ATTR_VALUE_SIZE 0x010053
|
|
|
|
|
|
|
|
/* wrong EA hash value */
|
|
|
|
#define PR_1_ATTR_HASH 0x010054
|
|
|
|
|
2007-04-02 18:08:59 +04:00
|
|
|
/* inode appears to be a directory */
|
|
|
|
#define PR_1_TREAT_AS_DIRECTORY 0x010055
|
|
|
|
|
2007-08-21 05:31:11 +04:00
|
|
|
/* Error while reading extent tree */
|
|
|
|
#define PR_1_READ_EXTENT 0x010056
|
|
|
|
|
2008-12-26 06:42:38 +03:00
|
|
|
/* Failure to iterate extents */
|
|
|
|
#define PR_1_EXTENT_ITERATE_FAILURE 0x010057
|
2007-08-21 05:31:11 +04:00
|
|
|
|
|
|
|
/* Bad starting block in extent */
|
|
|
|
#define PR_1_EXTENT_BAD_START_BLK 0x010058
|
|
|
|
|
|
|
|
/* Extent ends beyond filesystem */
|
|
|
|
#define PR_1_EXTENT_ENDS_BEYOND 0x010059
|
|
|
|
|
|
|
|
/* EXTENTS_FL flag set on a non-extents capable filesystem */
|
|
|
|
#define PR_1_EXTENTS_SET 0x01005A
|
|
|
|
|
|
|
|
/* inode has extents, superblock missing INCOMPAT_EXTENTS feature */
|
|
|
|
#define PR_1_EXTENT_FEATURE 0x01005B
|
|
|
|
|
|
|
|
/* inode missing EXTENTS_FL, but is an extent inode */
|
|
|
|
#define PR_1_UNSET_EXTENT_FL 0x01005C
|
|
|
|
|
2008-03-14 06:13:18 +03:00
|
|
|
/* Fast symlink has EXTENTS_FL set */
|
|
|
|
#define PR_1_FAST_SYMLINK_EXTENT_FL 0x01005D
|
|
|
|
|
2008-06-03 04:12:34 +04:00
|
|
|
/* Extents are out of order */
|
|
|
|
#define PR_1_OUT_OF_ORDER_EXTENTS 0x01005E
|
|
|
|
|
2008-12-26 06:42:38 +03:00
|
|
|
/* Extent node header invalid */
|
|
|
|
#define PR_1_EXTENT_HEADER_INVALID 0x01005F
|
|
|
|
|
2012-03-23 03:42:11 +04:00
|
|
|
/* PR_1_EOFBLOCKS_FL_SET 0x010060 was here */
|
2010-05-10 18:17:44 +04:00
|
|
|
|
2011-06-11 02:58:16 +04:00
|
|
|
/* Failed to convert subcluster bitmap */
|
|
|
|
#define PR_1_CONVERT_SUBCLUSTER 0x010061
|
|
|
|
|
2011-07-20 22:40:06 +04:00
|
|
|
/* Quota inode has wrong mode */
|
|
|
|
#define PR_1_QUOTA_BAD_MODE 0x010062
|
|
|
|
|
|
|
|
/* Quota inode is not in use, but contains data */
|
|
|
|
#define PR_1_QUOTA_INODE_NOT_CLEAR 0x010063
|
|
|
|
|
|
|
|
/* Quota inode is user visible */
|
|
|
|
#define PR_1_QUOTA_INODE_NOT_HIDDEN 0x010064
|
|
|
|
|
2011-09-28 23:12:55 +04:00
|
|
|
/* Invalid bad inode */
|
|
|
|
#define PR_1_INVALID_BAD_INODE 0x010065
|
|
|
|
|
2012-03-12 00:19:10 +04:00
|
|
|
/* Extent has zero length */
|
|
|
|
#define PR_1_EXTENT_LENGTH_ZERO 0x010066
|
|
|
|
|
2012-12-20 23:05:01 +04:00
|
|
|
/* Index start doesn't match start of next extent down */
|
|
|
|
#define PR_1_EXTENT_INDEX_START_INVALID 0x01006D
|
|
|
|
|
2013-06-07 04:04:33 +04:00
|
|
|
#define PR_1_EXTENT_END_OUT_OF_BOUNDS 0x01006E
|
1997-04-29 20:15:03 +04:00
|
|
|
/*
|
|
|
|
* Pass 1b errors
|
|
|
|
*/
|
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Pass 1B: Rescan for duplicate/bad blocks */
|
|
|
|
#define PR_1B_PASS_HEADER 0x011000
|
|
|
|
|
|
|
|
/* Duplicate/bad block(s) header */
|
|
|
|
#define PR_1B_DUP_BLOCK_HEADER 0x011001
|
|
|
|
|
|
|
|
/* Duplicate/bad block(s) in inode */
|
|
|
|
#define PR_1B_DUP_BLOCK 0x011002
|
|
|
|
|
|
|
|
/* Duplicate/bad block(s) end */
|
|
|
|
#define PR_1B_DUP_BLOCK_END 0x011003
|
2008-03-31 20:16:51 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Error while scanning inodes */
|
|
|
|
#define PR_1B_ISCAN_ERROR 0x011004
|
|
|
|
|
|
|
|
/* Error allocating inode bitmap */
|
|
|
|
#define PR_1B_ALLOCATE_IBITMAP_ERROR 0x011005
|
|
|
|
|
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.
2000-11-17 08:40:49 +03:00
|
|
|
/* Error while iterating over blocks */
|
2009-04-28 02:59:24 +04:00
|
|
|
#define PR_1B_BLOCK_ITERATE 0x011006
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
2002-08-17 18:19:44 +04:00
|
|
|
/* Error adjusting EA refcount */
|
2009-04-28 02:59:24 +04:00
|
|
|
#define PR_1B_ADJ_EA_REFCOUNT 0x011007
|
2002-08-17 18:19:44 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Pass 1C: Scan directories for inodes with dup blocks. */
|
|
|
|
#define PR_1C_PASS_HEADER 0x012000
|
|
|
|
|
|
|
|
|
|
|
|
/* Pass 1D: Reconciling duplicate blocks */
|
|
|
|
#define PR_1D_PASS_HEADER 0x013000
|
|
|
|
|
1997-04-29 20:15:03 +04:00
|
|
|
/* File has duplicate blocks */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1D_DUP_FILE 0x013001
|
1997-04-29 20:15:03 +04:00
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* List of files sharing duplicate blocks */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1D_DUP_FILE_LIST 0x013002
|
1997-04-29 20:15:03 +04:00
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* File sharing blocks with filesystem metadata */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1D_SHARE_METADATA 0x013003
|
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* Report of how many duplicate/bad inodes */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_1D_NUM_DUP_INODES 0x013004
|
|
|
|
|
|
|
|
/* Duplicated blocks already reassigned or cloned. */
|
|
|
|
#define PR_1D_DUP_BLOCKS_DEALT 0x013005
|
|
|
|
|
|
|
|
/* Clone duplicate/bad blocks? */
|
|
|
|
#define PR_1D_CLONE_QUESTION 0x013006
|
|
|
|
|
|
|
|
/* Delete file? */
|
|
|
|
#define PR_1D_DELETE_QUESTION 0x013007
|
1997-04-29 21:48:10 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Couldn't clone file (error) */
|
|
|
|
#define PR_1D_CLONE_ERROR 0x013008
|
2008-03-31 20:16:51 +04:00
|
|
|
|
1997-04-29 20:15:03 +04:00
|
|
|
/*
|
|
|
|
* Pass 2 errors
|
|
|
|
*/
|
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Pass 2: Checking directory structure */
|
|
|
|
#define PR_2_PASS_HEADER 0x020000
|
|
|
|
|
1997-04-29 20:15:03 +04:00
|
|
|
/* Bad inode number for '.' */
|
|
|
|
#define PR_2_BAD_INODE_DOT 0x020001
|
|
|
|
|
|
|
|
/* Directory entry has bad inode number */
|
|
|
|
#define PR_2_BAD_INO 0x020002
|
|
|
|
|
|
|
|
/* Directory entry has deleted or unused inode */
|
|
|
|
#define PR_2_UNUSED_INODE 0x020003
|
|
|
|
|
|
|
|
/* Directry entry is link to '.' */
|
|
|
|
#define PR_2_LINK_DOT 0x020004
|
|
|
|
|
|
|
|
/* Directory entry points to inode now located in a bad block */
|
|
|
|
#define PR_2_BB_INODE 0x020005
|
|
|
|
|
|
|
|
/* Directory entry contains a link to a directory */
|
|
|
|
#define PR_2_LINK_DIR 0x020006
|
|
|
|
|
|
|
|
/* Directory entry contains a link to the root directry */
|
|
|
|
#define PR_2_LINK_ROOT 0x020007
|
|
|
|
|
|
|
|
/* Directory entry has illegal characters in its name */
|
|
|
|
#define PR_2_BAD_NAME 0x020008
|
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* Missing '.' in directory inode */
|
1997-04-29 20:15:03 +04:00
|
|
|
#define PR_2_MISSING_DOT 0x020009
|
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* Missing '..' in directory inode */
|
1997-04-29 20:15:03 +04:00
|
|
|
#define PR_2_MISSING_DOT_DOT 0x02000A
|
|
|
|
|
|
|
|
/* First entry in directory inode doesn't contain '.' */
|
|
|
|
#define PR_2_1ST_NOT_DOT 0x02000B
|
|
|
|
|
|
|
|
/* Second entry in directory inode doesn't contain '..' */
|
|
|
|
#define PR_2_2ND_NOT_DOT_DOT 0x02000C
|
|
|
|
|
|
|
|
/* i_faddr should be zero */
|
|
|
|
#define PR_2_FADDR_ZERO 0x02000D
|
|
|
|
|
|
|
|
/* i_file_acl should be zero */
|
|
|
|
#define PR_2_FILE_ACL_ZERO 0x02000E
|
|
|
|
|
|
|
|
/* i_dir_acl should be zero */
|
|
|
|
#define PR_2_DIR_ACL_ZERO 0x02000F
|
|
|
|
|
|
|
|
/* i_frag should be zero */
|
|
|
|
#define PR_2_FRAG_ZERO 0x020010
|
|
|
|
|
|
|
|
/* i_fsize should be zero */
|
|
|
|
#define PR_2_FSIZE_ZERO 0x020011
|
2008-03-31 20:16:51 +04:00
|
|
|
|
1997-04-29 20:15:03 +04:00
|
|
|
/* inode has bad mode */
|
|
|
|
#define PR_2_BAD_MODE 0x020012
|
|
|
|
|
|
|
|
/* directory corrupted */
|
|
|
|
#define PR_2_DIR_CORRUPTED 0x020013
|
2008-03-31 20:16:51 +04:00
|
|
|
|
1997-04-29 20:15:03 +04:00
|
|
|
/* filename too long */
|
|
|
|
#define PR_2_FILENAME_LONG 0x020014
|
2008-03-31 20:16:51 +04:00
|
|
|
|
1997-04-29 20:15:03 +04:00
|
|
|
/* Directory inode has a missing block (hole) */
|
|
|
|
#define PR_2_DIRECTORY_HOLE 0x020015
|
|
|
|
|
|
|
|
/* '.' is not NULL terminated */
|
|
|
|
#define PR_2_DOT_NULL_TERM 0x020016
|
|
|
|
|
|
|
|
/* '..' is not NULL terminated */
|
|
|
|
#define PR_2_DOT_DOT_NULL_TERM 0x020017
|
|
|
|
|
1997-08-14 21:17:16 +04:00
|
|
|
/* Illegal character device in inode */
|
|
|
|
#define PR_2_BAD_CHAR_DEV 0x020018
|
|
|
|
|
|
|
|
/* Illegal block device in inode */
|
|
|
|
#define PR_2_BAD_BLOCK_DEV 0x020019
|
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Duplicate '.' entry */
|
|
|
|
#define PR_2_DUP_DOT 0x02001A
|
|
|
|
|
|
|
|
/* Duplicate '..' entry */
|
|
|
|
#define PR_2_DUP_DOT_DOT 0x02001B
|
2008-03-31 20:16:51 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Internal error: couldn't find dir_info */
|
|
|
|
#define PR_2_NO_DIRINFO 0x02001C
|
|
|
|
|
|
|
|
/* Final rec_len is wrong */
|
|
|
|
#define PR_2_FINAL_RECLEN 0x02001D
|
|
|
|
|
|
|
|
/* Error allocating icount structure */
|
|
|
|
#define PR_2_ALLOCATE_ICOUNT 0x02001E
|
|
|
|
|
|
|
|
/* Error iterating over directory blocks */
|
|
|
|
#define PR_2_DBLIST_ITERATE 0x02001F
|
|
|
|
|
|
|
|
/* Error reading directory block */
|
|
|
|
#define PR_2_READ_DIRBLOCK 0x020020
|
|
|
|
|
|
|
|
/* Error writing directory block */
|
|
|
|
#define PR_2_WRITE_DIRBLOCK 0x020021
|
|
|
|
|
|
|
|
/* Error allocating new directory block */
|
|
|
|
#define PR_2_ALLOC_DIRBOCK 0x020022
|
|
|
|
|
|
|
|
/* Error deallocating inode */
|
|
|
|
#define PR_2_DEALLOC_INODE 0x020023
|
|
|
|
|
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.
1997-11-14 08:23:04 +03:00
|
|
|
/* Directory entry for '.' is big. Split? */
|
1999-11-08 21:46:54 +03:00
|
|
|
#define PR_2_SPLIT_DOT 0x020024
|
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.
1997-11-14 08:23:04 +03:00
|
|
|
|
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.
1998-11-14 07:18:28 +03:00
|
|
|
/* Illegal FIFO */
|
|
|
|
#define PR_2_BAD_FIFO 0x020025
|
|
|
|
|
|
|
|
/* Illegal socket */
|
|
|
|
#define PR_2_BAD_SOCKET 0x020026
|
|
|
|
|
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
1999-10-21 23:33:18 +04:00
|
|
|
/* Directory filetype not set */
|
|
|
|
#define PR_2_SET_FILETYPE 0x020027
|
|
|
|
|
|
|
|
/* Directory filetype incorrect */
|
|
|
|
#define PR_2_BAD_FILETYPE 0x020028
|
|
|
|
|
1999-10-22 19:11:42 +04:00
|
|
|
/* Directory filetype set when it shouldn't be */
|
|
|
|
#define PR_2_CLEAR_FILETYPE 0x020029
|
|
|
|
|
1999-10-26 01:03:34 +04:00
|
|
|
/* Directory filename can't be zero-length */
|
|
|
|
#define PR_2_NULL_NAME 0x020030
|
|
|
|
|
2002-05-21 17:14:17 +04:00
|
|
|
/* Invalid symlink */
|
|
|
|
#define PR_2_INVALID_SYMLINK 0x020031
|
2001-06-02 08:26:26 +04:00
|
|
|
|
2001-07-02 19:54:09 +04:00
|
|
|
/* i_file_acl (extended attribute) is bad */
|
|
|
|
#define PR_2_FILE_ACL_BAD 0x020032
|
|
|
|
|
2001-08-09 12:14:04 +04:00
|
|
|
/* Filesystem contains large files, but has no such flag in sb */
|
|
|
|
#define PR_2_FEATURE_LARGE_FILES 0x020033
|
|
|
|
|
2002-06-26 07:26:34 +04:00
|
|
|
/* Node in HTREE directory not referenced */
|
|
|
|
#define PR_2_HTREE_NOTREF 0x020034
|
|
|
|
|
|
|
|
/* Node in HTREE directory referenced twice */
|
|
|
|
#define PR_2_HTREE_DUPREF 0x020035
|
|
|
|
|
|
|
|
/* Node in HTREE directory has bad min hash */
|
|
|
|
#define PR_2_HTREE_MIN_HASH 0x020036
|
|
|
|
|
|
|
|
/* Node in HTREE directory has bad max hash */
|
|
|
|
#define PR_2_HTREE_MAX_HASH 0x020037
|
|
|
|
|
|
|
|
/* Clear invalid HTREE directory */
|
|
|
|
#define PR_2_HTREE_CLEAR 0x020038
|
|
|
|
|
|
|
|
/* Clear the htree flag forcibly */
|
2005-02-05 18:28:15 +03:00
|
|
|
/* #define PR_2_HTREE_FCLR 0x020039 */
|
2002-06-26 07:26:34 +04:00
|
|
|
|
|
|
|
/* Bad block in htree interior node */
|
|
|
|
#define PR_2_HTREE_BADBLK 0x02003A
|
|
|
|
|
2002-08-17 18:19:44 +04:00
|
|
|
/* Error adjusting EA refcount */
|
|
|
|
#define PR_2_ADJ_EA_REFCOUNT 0x02003B
|
|
|
|
|
2002-08-31 10:32:41 +04:00
|
|
|
/* Invalid HTREE root node */
|
|
|
|
#define PR_2_HTREE_BAD_ROOT 0x02003C
|
|
|
|
|
2002-09-30 19:19:19 +04:00
|
|
|
/* Invalid HTREE limit */
|
|
|
|
#define PR_2_HTREE_BAD_LIMIT 0x02003D
|
|
|
|
|
|
|
|
/* Invalid HTREE count */
|
|
|
|
#define PR_2_HTREE_BAD_COUNT 0x02003E
|
|
|
|
|
|
|
|
/* HTREE interior node has out-of-order hashes in table */
|
|
|
|
#define PR_2_HTREE_HASH_ORDER 0x02003F
|
|
|
|
|
|
|
|
/* Node in HTREE directory has bad depth */
|
2003-03-14 09:43:56 +03:00
|
|
|
#define PR_2_HTREE_BAD_DEPTH 0x020040
|
|
|
|
|
|
|
|
/* Duplicate directory entry found */
|
|
|
|
#define PR_2_DUPLICATE_DIRENT 0x020041
|
|
|
|
|
|
|
|
/* Non-unique filename found */
|
|
|
|
#define PR_2_NON_UNIQUE_FILE 0x020042
|
2002-09-30 19:19:19 +04:00
|
|
|
|
2003-03-15 06:19:10 +03:00
|
|
|
/* Duplicate directory entry found */
|
|
|
|
#define PR_2_REPORT_DUP_DIRENT 0x020043
|
|
|
|
|
2006-11-11 14:32:03 +03:00
|
|
|
/* i_blocks_hi should be zero */
|
|
|
|
#define PR_2_BLOCKS_HI_ZERO 0x020044
|
|
|
|
|
2008-03-12 23:10:48 +03:00
|
|
|
/* Unexpected HTREE block */
|
|
|
|
#define PR_2_UNEXPECTED_HTREE_BLOCK 0x020045
|
|
|
|
|
2007-10-22 06:04:03 +04:00
|
|
|
/* Inode found in group where _INODE_UNINIT is set */
|
|
|
|
#define PR_2_INOREF_BG_INO_UNINIT 0x020046
|
|
|
|
|
|
|
|
/* Inode found in group unused inodes area */
|
|
|
|
#define PR_2_INOREF_IN_UNUSED 0x020047
|
|
|
|
|
2009-04-24 05:31:16 +04:00
|
|
|
/* i_file_acl_hi should be zero */
|
|
|
|
#define PR_2_I_FILE_ACL_HI_ZERO 0x020048
|
|
|
|
|
1997-04-29 20:15:03 +04:00
|
|
|
/*
|
|
|
|
* Pass 3 errors
|
|
|
|
*/
|
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Pass 3: Checking directory connectivity */
|
|
|
|
#define PR_3_PASS_HEADER 0x030000
|
|
|
|
|
1997-04-29 20:15:03 +04:00
|
|
|
/* Root inode not allocated */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_3_NO_ROOT_INODE 0x030001
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* No room in lost+found */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_3_EXPAND_LF_DIR 0x030002
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Unconnected directory inode */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_3_UNCONNECTED_DIR 0x030003
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* /lost+found not found */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_3_NO_LF_DIR 0x030004
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* .. entry is incorrect */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_3_BAD_DOT_DOT 0x030005
|
|
|
|
|
|
|
|
/* Bad or non-existent /lost+found. Cannot reconnect */
|
|
|
|
#define PR_3_NO_LPF 0x030006
|
|
|
|
|
|
|
|
/* Could not expand /lost+found */
|
|
|
|
#define PR_3_CANT_EXPAND_LPF 0x030007
|
|
|
|
|
|
|
|
/* Could not reconnect inode */
|
|
|
|
#define PR_3_CANT_RECONNECT 0x030008
|
|
|
|
|
|
|
|
/* Error while trying to find /lost+found */
|
|
|
|
#define PR_3_ERR_FIND_LPF 0x030009
|
|
|
|
|
|
|
|
/* Error in ext2fs_new_block while creating /lost+found */
|
|
|
|
#define PR_3_ERR_LPF_NEW_BLOCK 0x03000A
|
1997-04-29 20:15:03 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Error in ext2fs_new_inode while creating /lost+found */
|
|
|
|
#define PR_3_ERR_LPF_NEW_INODE 0x03000B
|
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* Error in ext2fs_new_dir_block while creating /lost+found */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_3_ERR_LPF_NEW_DIR_BLOCK 0x03000C
|
2008-03-31 20:16:51 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Error while writing directory block for /lost+found */
|
|
|
|
#define PR_3_ERR_LPF_WRITE_BLOCK 0x03000D
|
|
|
|
|
|
|
|
/* Error while adjusting inode count */
|
|
|
|
#define PR_3_ADJUST_INODE 0x03000E
|
|
|
|
|
|
|
|
/* Couldn't fix parent directory -- error */
|
|
|
|
#define PR_3_FIX_PARENT_ERR 0x03000F
|
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* Couldn't fix parent directory -- couldn't find it */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_3_FIX_PARENT_NOFIND 0x030010
|
2008-03-31 20:16:51 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Error allocating inode bitmap */
|
|
|
|
#define PR_3_ALLOCATE_IBITMAP_ERROR 0x030011
|
2008-03-31 20:16:51 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Error creating root directory */
|
|
|
|
#define PR_3_CREATE_ROOT_ERROR 0x030012
|
|
|
|
|
|
|
|
/* Error creating lost and found directory */
|
|
|
|
#define PR_3_CREATE_LPF_ERROR 0x030013
|
1997-04-29 20:15:03 +04:00
|
|
|
|
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.
1997-11-14 08:23:04 +03:00
|
|
|
/* Root inode is not directory; aborting */
|
|
|
|
#define PR_3_ROOT_NOT_DIR_ABORT 0x030014
|
|
|
|
|
|
|
|
/* Cannot proceed without a root inode. */
|
|
|
|
#define PR_3_NO_ROOT_INODE_ABORT 0x030015
|
|
|
|
|
1998-09-03 05:26:03 +04:00
|
|
|
/* Internal error: couldn't find dir_info */
|
1999-03-16 22:32:52 +03:00
|
|
|
#define PR_3_NO_DIRINFO 0x030016
|
|
|
|
|
|
|
|
/* Lost+found is not a directory */
|
|
|
|
#define PR_3_LPF_NOTDIR 0x030017
|
1998-09-03 05:26:03 +04:00
|
|
|
|
2002-07-20 08:28:07 +04:00
|
|
|
/*
|
|
|
|
* Pass 3a --- rehashing diretories
|
|
|
|
*/
|
|
|
|
/* Pass 3a: Reindexing directories */
|
|
|
|
#define PR_3A_PASS_HEADER 0x031000
|
|
|
|
|
|
|
|
/* Error iterating over directories */
|
2002-07-25 08:00:08 +04:00
|
|
|
#define PR_3A_OPTIMIZE_ITER 0x031001
|
2002-07-20 08:28:07 +04:00
|
|
|
|
|
|
|
/* Error rehash directory */
|
2008-03-31 20:16:51 +04:00
|
|
|
#define PR_3A_OPTIMIZE_DIR_ERR 0x031002
|
2002-07-20 08:28:07 +04:00
|
|
|
|
|
|
|
/* Rehashing dir header */
|
2009-04-28 22:59:07 +04:00
|
|
|
#define PR_3A_OPTIMIZE_DIR_HEADER 0x031003
|
2002-07-20 08:28:07 +04:00
|
|
|
|
|
|
|
/* Rehashing directory %d */
|
2002-07-25 08:00:08 +04:00
|
|
|
#define PR_3A_OPTIMIZE_DIR 0x031004
|
2008-03-31 20:16:51 +04:00
|
|
|
|
|
|
|
/* Rehashing dir end */
|
2002-07-25 08:00:08 +04:00
|
|
|
#define PR_3A_OPTIMIZE_DIR_END 0x031005
|
|
|
|
|
1997-04-29 20:15:03 +04:00
|
|
|
/*
|
|
|
|
* Pass 4 errors
|
|
|
|
*/
|
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Pass 4: Checking reference counts */
|
2009-04-28 22:59:07 +04:00
|
|
|
#define PR_4_PASS_HEADER 0x040000
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
1997-04-29 20:15:03 +04:00
|
|
|
/* Unattached zero-length inode */
|
2009-04-28 22:59:07 +04:00
|
|
|
#define PR_4_ZERO_LEN_INODE 0x040001
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Unattached inode */
|
2009-04-28 22:59:07 +04:00
|
|
|
#define PR_4_UNATTACHED_INODE 0x040002
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* Inode ref count wrong */
|
2009-04-28 22:59:07 +04:00
|
|
|
#define PR_4_BAD_REF_COUNT 0x040003
|
1997-04-29 20:15:03 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Inconsistent inode count information cached */
|
2009-04-28 22:59:07 +04:00
|
|
|
#define PR_4_INCONSISTENT_COUNT 0x040004
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
1997-04-29 20:15:03 +04:00
|
|
|
/*
|
|
|
|
* Pass 5 errors
|
|
|
|
*/
|
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Pass 5: Checking group summary information */
|
|
|
|
#define PR_5_PASS_HEADER 0x050000
|
2008-03-31 20:16:51 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Padding at end of inode bitmap is not set. */
|
|
|
|
#define PR_5_INODE_BMAP_PADDING 0x050001
|
|
|
|
|
|
|
|
/* Padding at end of block bitmap is not set. */
|
|
|
|
#define PR_5_BLOCK_BMAP_PADDING 0x050002
|
|
|
|
|
|
|
|
/* Block bitmap differences header */
|
2009-04-28 22:59:07 +04:00
|
|
|
#define PR_5_BLOCK_BITMAP_HEADER 0x050003
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
|
|
|
/* Block not used, but marked in bitmap */
|
2002-03-07 10:47:07 +03:00
|
|
|
#define PR_5_BLOCK_UNUSED 0x050004
|
2008-03-31 20:16:51 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Block used, but not marked used in bitmap */
|
|
|
|
#define PR_5_BLOCK_USED 0x050005
|
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* Block bitmap differences end */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_5_BLOCK_BITMAP_END 0x050006
|
|
|
|
|
|
|
|
/* Inode bitmap differences header */
|
|
|
|
#define PR_5_INODE_BITMAP_HEADER 0x050007
|
|
|
|
|
|
|
|
/* Inode not used, but marked in bitmap */
|
2002-03-07 10:47:07 +03:00
|
|
|
#define PR_5_INODE_UNUSED 0x050008
|
2008-03-31 20:16:51 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Inode used, but not marked used in bitmap */
|
|
|
|
#define PR_5_INODE_USED 0x050009
|
|
|
|
|
2008-03-31 20:16:51 +04:00
|
|
|
/* Inode bitmap differences end */
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
#define PR_5_INODE_BITMAP_END 0x05000A
|
|
|
|
|
|
|
|
/* Free inodes count for group wrong */
|
|
|
|
#define PR_5_FREE_INODE_COUNT_GROUP 0x05000B
|
|
|
|
|
|
|
|
/* Directories count for group wrong */
|
|
|
|
#define PR_5_FREE_DIR_COUNT_GROUP 0x05000C
|
|
|
|
|
|
|
|
/* Free inodes count wrong */
|
2009-04-28 22:59:07 +04:00
|
|
|
#define PR_5_FREE_INODE_COUNT 0x05000D
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
|
|
|
|
/* Free blocks count for group wrong */
|
|
|
|
#define PR_5_FREE_BLOCK_COUNT_GROUP 0x05000E
|
|
|
|
|
|
|
|
/* Free blocks count wrong */
|
|
|
|
#define PR_5_FREE_BLOCK_COUNT 0x05000F
|
|
|
|
|
|
|
|
/* Programming error: bitmap endpoints don't match */
|
|
|
|
#define PR_5_BMAP_ENDPOINTS 0x050010
|
2000-06-10 23:21:33 +04:00
|
|
|
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
/* Internal error: fudging end of bitmap */
|
|
|
|
#define PR_5_FUDGE_BITMAP_ERROR 0x050011
|
2000-06-10 23:21:33 +04:00
|
|
|
|
|
|
|
/* Error copying in replacement inode bitmap */
|
|
|
|
#define PR_5_COPY_IBITMAP_ERROR 0x050012
|
|
|
|
|
|
|
|
/* Error copying in replacement block bitmap */
|
|
|
|
#define PR_5_COPY_BBITMAP_ERROR 0x050013
|
|
|
|
|
2002-03-07 10:47:07 +03:00
|
|
|
/* Block range not used, but marked in bitmap */
|
|
|
|
#define PR_5_BLOCK_RANGE_UNUSED 0x050014
|
2008-03-31 20:16:51 +04:00
|
|
|
|
2002-03-07 10:47:07 +03:00
|
|
|
/* Block range used, but not marked used in bitmap */
|
|
|
|
#define PR_5_BLOCK_RANGE_USED 0x050015
|
|
|
|
|
|
|
|
/* Inode range not used, but marked in bitmap */
|
|
|
|
#define PR_5_INODE_RANGE_UNUSED 0x050016
|
2007-10-22 06:04:03 +04:00
|
|
|
|
2002-03-07 10:47:07 +03:00
|
|
|
/* Inode rangeused, but not marked used in bitmap */
|
|
|
|
#define PR_5_INODE_RANGE_USED 0x050017
|
|
|
|
|
2007-10-22 06:04:03 +04:00
|
|
|
/* Block in use but group is marked BLOCK_UNINIT */
|
|
|
|
#define PR_5_BLOCK_UNINIT 0x050018
|
|
|
|
|
|
|
|
/* Inode in use but group is marked INODE_UNINIT */
|
|
|
|
#define PR_5_INODE_UNINIT 0x050019
|
|
|
|
|
2007-06-21 19:59:06 +04:00
|
|
|
/*
|
|
|
|
* Post-Pass 5 errors
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* Recreate the journal if E2F_FLAG_JOURNAL_INODE flag is set */
|
|
|
|
#define PR_6_RECREATE_JOURNAL 0x060001
|
|
|
|
|
2012-04-24 22:46:08 +04:00
|
|
|
/* Update quota information if it is inconsistent */
|
|
|
|
#define PR_6_UPDATE_QUOTAS 0x060002
|
|
|
|
|
1997-04-29 20:15:03 +04:00
|
|
|
/*
|
|
|
|
* Function declarations
|
|
|
|
*/
|
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.
1997-10-03 21:48:10 +04:00
|
|
|
int fix_problem(e2fsck_t ctx, problem_t code, struct problem_context *pctx);
|
|
|
|
int end_problem_latch(e2fsck_t ctx, int mask);
|
|
|
|
int set_latch_flags(int mask, int setflags, int clearflags);
|
|
|
|
int get_latch_flags(int mask, int *value);
|
2009-04-28 22:59:07 +04:00
|
|
|
void clear_problem_context(struct problem_context *pctx);
|
1997-04-29 20:15:03 +04:00
|
|
|
|
|
|
|
/* message.c */
|
2012-03-18 07:21:00 +04:00
|
|
|
void print_e2fsck_message(FILE *f, e2fsck_t ctx, const char *msg,
|
2008-03-31 20:16:51 +04:00
|
|
|
struct problem_context *pctx, int first,
|
2007-07-03 03:04:31 +04:00
|
|
|
int recurse);
|
1997-04-29 20:15:03 +04:00
|
|
|
|