X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=e2fsck%2Fproblem.h;h=24e7ed708548ad9cbc69ae7ac7b047fd0a08209b;hb=30ab7f4c65bd32a7d24f53e8c87ed5b5ae757626;hp=91a6148e6efbe64290b10d4dc27fb259d88885d6;hpb=d45edec0fb2e5d100d122fdda0914560c64def44;p=tools%2Fe2fsprogs.git diff --git a/e2fsck/problem.h b/e2fsck/problem.h index 91a6148..24e7ed7 100644 --- a/e2fsck/problem.h +++ b/e2fsck/problem.h @@ -16,7 +16,7 @@ struct problem_context { ext2_ino_t ino, ino2, dir; struct ext2_inode *inode; struct ext2_dir_entry *dirent; - blk_t blk, blk2; + blk64_t blk, blk2; e2_blkcnt_t blkcount; int group; __u64 num; @@ -82,12 +82,12 @@ struct problem_context { /* Adding UUID to filesystem */ #define PR_0_ADD_UUID 0x000009 -/* Relocate hint */ +/* Relocate hint */ #define PR_0_RELOCATE_HINT 0x00000A /* Miscellaneous superblock corruption */ #define PR_0_MISC_CORRUPT_SUPER 0x00000B - + /* Error determing physical device size of filesystem */ #define PR_0_GETSIZE_ERROR 0x00000C @@ -135,13 +135,13 @@ struct problem_context { /* Clearing orphan inode */ #define PR_0_ORPHAN_CLEAR_INODE 0x000020 - + /* Illegal block found in orphaned inode */ #define PR_0_ORPHAN_ILLEGAL_BLOCK_NUM 0x000021 /* Already cleared block found in orphaned inode */ #define PR_0_ORPHAN_ALREADY_CLEARED_BLOCK 0x000022 - + /* Illegal orphan inode in superblock */ #define PR_0_ORPHAN_ILLEGAL_HEAD_INODE 0x000023 @@ -196,6 +196,24 @@ struct problem_context { /* Superblock hint for external journal incorrect */ #define PR_0_DIRHASH_HINT 0x000034 +/* 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 + +/* Block bitmap is not initialised and Inode bitmap is */ +#define PR_0_BB_UNINIT_IB_INIT 0x000037 + +/* Group descriptor N has invalid unused inodes count. */ +#define PR_0_GDT_ITABLE_UNUSED 0x000038 + +/* Last group block bitmap is uninitialized. */ +#define PR_0_BB_UNINIT_LAST 0x000039 + +/* Journal transaction found corrupt */ +#define PR_0_JNL_TXN_CORRUPT 0x00003A + /* * Pass 1 errors */ @@ -253,7 +271,7 @@ struct problem_context { /* Too many bad blocks in inode */ #define PR_1_TOO_MANY_BAD_BLOCKS 0x010011 - + /* Illegal block number in bad block inode */ #define PR_1_BB_ILLEGAL_BLOCK_NUM 0x010012 @@ -262,16 +280,16 @@ struct problem_context { /* Duplicate or bad blocks in use! */ #define PR_1_DUP_BLOCKS_PREENSTOP 0x010014 - -/* Bad block used as bad block indirect block */ + +/* Bad block used as bad block indirect block */ #define PR_1_BBINODE_BAD_METABLOCK 0x010015 /* Inconsistency can't be fixed prompt */ #define PR_1_BBINODE_BAD_METABLOCK_PROMPT 0x010016 - + /* Bad primary block */ #define PR_1_BAD_PRIMARY_BLOCK 0x010017 - + /* Bad primary block prompt */ #define PR_1_BAD_PRIMARY_BLOCK_PROMPT 0x010018 @@ -287,24 +305,24 @@ struct problem_context { /* Bad block group descriptors in group */ #define PR_1_BAD_GROUP_DESCRIPTORS 0x01001C -/* Block claimed for no reason */ +/* Block claimed for no reason */ #define PR_1_PROGERR_CLAIMED_BLOCK 0x01001D /* Error allocating blocks for relocating metadata */ #define PR_1_RELOC_BLOCK_ALLOCATE 0x01001E - + /* Error allocating block buffer during relocation process */ #define PR_1_RELOC_MEMORY_ALLOCATE 0x01001F - -/* Relocating metadata group information from X to Y */ + +/* Relocating metadata group information from X to Y */ #define PR_1_RELOC_FROM_TO 0x010020 - + /* Relocating metatdata group information to X */ #define PR_1_RELOC_TO 0x010021 - + /* Block read error during relocation process */ #define PR_1_RELOC_READ_ERR 0x010022 - + /* Block write error during relocation process */ #define PR_1_RELOC_WRITE_ERR 0x010023 @@ -316,7 +334,7 @@ struct problem_context { /* Error allocating icount structure */ #define PR_1_ALLOCATE_ICOUNT 0x010026 - + /* Error allocating dbcount */ #define PR_1_ALLOCATE_DBCOUNT 0x010027 @@ -326,10 +344,10 @@ struct problem_context { /* Error while iterating over blocks */ #define PR_1_BLOCK_ITERATE 0x010029 -/* Error while storing inode count information */ +/* Error while storing inode count information */ #define PR_1_ICOUNT_STORE 0x01002A -/* Error while storing directory block information */ +/* Error while storing directory block information */ #define PR_1_ADD_DBLOCK 0x01002B /* Error while reading inode (for clearing) */ @@ -367,7 +385,7 @@ struct problem_context { /* Error allocating refcount structure */ #define PR_1_ALLOCATE_REFCOUNT 0x010038 - + /* Error reading Extended Attribute block */ #define PR_1_READ_EA_BLOCK 0x010039 @@ -380,7 +398,7 @@ struct problem_context { /* Extended attribute reference count incorrect */ #define PR_1_EXTATTR_REFCOUNT 0x01003C -/* Error writing Extended Attribute block while fixing refcount */ +/* Error writing Extended Attribute block while fixing refcount */ #define PR_1_EXTATTR_WRITE 0x01003D /* Multiple EA blocks not supported */ @@ -413,19 +431,19 @@ struct problem_context { /* INDEX_FL flag set on a non-HTREE filesystem */ #define PR_1_HTREE_SET 0x010047 -/* INDEX_FL flag set on a non-directory */ +/* INDEX_FL flag set on a non-directory */ #define PR_1_HTREE_NODIR 0x010048 -/* Invalid root node in HTREE directory */ +/* Invalid root node in HTREE directory */ #define PR_1_HTREE_BADROOT 0x010049 -/* Unsupported hash version in HTREE directory */ +/* Unsupported hash version in HTREE directory */ #define PR_1_HTREE_HASHV 0x01004A -/* Incompatible flag in HTREE root node */ +/* Incompatible flag in HTREE root node */ #define PR_1_HTREE_INCOMPAT 0x01004B -/* HTREE too deep */ +/* HTREE too deep */ #define PR_1_HTREE_DEPTH 0x01004C /* Bad block has indirect block that conflicts with filesystem block */ @@ -434,7 +452,7 @@ struct problem_context { /* Resize inode failed */ #define PR_1_RESIZE_INODE_CREATE 0x01004E -/* inode->i_size is too long */ +/* inode->i_size is too long */ #define PR_1_EXTRA_ISIZE 0x01004F /* attribute name is too long */ @@ -455,6 +473,33 @@ struct problem_context { /* inode appears to be a directory */ #define PR_1_TREAT_AS_DIRECTORY 0x010055 +/* Error while reading extent tree */ +#define PR_1_READ_EXTENT 0x010056 + +/* Error deleting a bogus extent */ +#define PR_1_EXTENT_DELETE_FAIL 0x010057 + +/* 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 + +/* Fast symlink has EXTENTS_FL set */ +#define PR_1_FAST_SYMLINK_EXTENT_FL 0x01005D + +/* Extents are out of order */ +#define PR_1_OUT_OF_ORDER_EXTENTS 0x01005E + /* * Pass 1b errors */ @@ -470,7 +515,7 @@ struct problem_context { /* Duplicate/bad block(s) end */ #define PR_1B_DUP_BLOCK_END 0x011003 - + /* Error while scanning inodes */ #define PR_1B_ISCAN_ERROR 0x011004 @@ -494,13 +539,13 @@ struct problem_context { /* File has duplicate blocks */ #define PR_1D_DUP_FILE 0x013001 -/* List of files sharing duplicate blocks */ +/* List of files sharing duplicate blocks */ #define PR_1D_DUP_FILE_LIST 0x013002 -/* File sharing blocks with filesystem metadata */ +/* File sharing blocks with filesystem metadata */ #define PR_1D_SHARE_METADATA 0x013003 -/* Report of how many duplicate/bad inodes */ +/* Report of how many duplicate/bad inodes */ #define PR_1D_NUM_DUP_INODES 0x013004 /* Duplicated blocks already reassigned or cloned. */ @@ -514,7 +559,7 @@ struct problem_context { /* Couldn't clone file (error) */ #define PR_1D_CLONE_ERROR 0x013008 - + /* * Pass 2 errors */ @@ -546,10 +591,10 @@ struct problem_context { /* Directory entry has illegal characters in its name */ #define PR_2_BAD_NAME 0x020008 -/* Missing '.' in directory inode */ +/* Missing '.' in directory inode */ #define PR_2_MISSING_DOT 0x020009 -/* Missing '..' in directory inode */ +/* Missing '..' in directory inode */ #define PR_2_MISSING_DOT_DOT 0x02000A /* First entry in directory inode doesn't contain '.' */ @@ -572,16 +617,16 @@ struct problem_context { /* i_fsize should be zero */ #define PR_2_FSIZE_ZERO 0x020011 - + /* inode has bad mode */ #define PR_2_BAD_MODE 0x020012 /* directory corrupted */ #define PR_2_DIR_CORRUPTED 0x020013 - + /* filename too long */ #define PR_2_FILENAME_LONG 0x020014 - + /* Directory inode has a missing block (hole) */ #define PR_2_DIRECTORY_HOLE 0x020015 @@ -602,7 +647,7 @@ struct problem_context { /* Duplicate '..' entry */ #define PR_2_DUP_DOT_DOT 0x02001B - + /* Internal error: couldn't find dir_info */ #define PR_2_NO_DIRINFO 0x02001C @@ -711,6 +756,12 @@ struct problem_context { /* Unexpected HTREE block */ #define PR_2_UNEXPECTED_HTREE_BLOCK 0x020045 +/* 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 + /* * Pass 3 errors */ @@ -751,9 +802,9 @@ struct problem_context { /* Error in ext2fs_new_inode while creating /lost+found */ #define PR_3_ERR_LPF_NEW_INODE 0x03000B -/* Error in ext2fs_new_dir_block while creating /lost+found */ +/* Error in ext2fs_new_dir_block while creating /lost+found */ #define PR_3_ERR_LPF_NEW_DIR_BLOCK 0x03000C - + /* Error while writing directory block for /lost+found */ #define PR_3_ERR_LPF_WRITE_BLOCK 0x03000D @@ -763,12 +814,12 @@ struct problem_context { /* Couldn't fix parent directory -- error */ #define PR_3_FIX_PARENT_ERR 0x03000F -/* Couldn't fix parent directory -- couldn't find it */ +/* Couldn't fix parent directory -- couldn't find it */ #define PR_3_FIX_PARENT_NOFIND 0x030010 - + /* Error allocating inode bitmap */ #define PR_3_ALLOCATE_IBITMAP_ERROR 0x030011 - + /* Error creating root directory */ #define PR_3_CREATE_ROOT_ERROR 0x030012 @@ -797,15 +848,15 @@ struct problem_context { #define PR_3A_OPTIMIZE_ITER 0x031001 /* Error rehash directory */ -#define PR_3A_OPTIMIZE_DIR_ERR 0x031002 +#define PR_3A_OPTIMIZE_DIR_ERR 0x031002 /* Rehashing dir header */ #define PR_3A_OPTIMIZE_DIR_HEADER 0x031003 /* Rehashing directory %d */ #define PR_3A_OPTIMIZE_DIR 0x031004 - -/* Rehashing dir end */ + +/* Rehashing dir end */ #define PR_3A_OPTIMIZE_DIR_END 0x031005 /* @@ -833,7 +884,7 @@ struct problem_context { /* Pass 5: Checking group summary information */ #define PR_5_PASS_HEADER 0x050000 - + /* Padding at end of inode bitmap is not set. */ #define PR_5_INODE_BMAP_PADDING 0x050001 @@ -845,11 +896,11 @@ struct problem_context { /* Block not used, but marked in bitmap */ #define PR_5_BLOCK_UNUSED 0x050004 - + /* Block used, but not marked used in bitmap */ #define PR_5_BLOCK_USED 0x050005 -/* Block bitmap differences end */ +/* Block bitmap differences end */ #define PR_5_BLOCK_BITMAP_END 0x050006 /* Inode bitmap differences header */ @@ -857,11 +908,11 @@ struct problem_context { /* Inode not used, but marked in bitmap */ #define PR_5_INODE_UNUSED 0x050008 - + /* Inode used, but not marked used in bitmap */ #define PR_5_INODE_USED 0x050009 -/* Inode bitmap differences end */ +/* Inode bitmap differences end */ #define PR_5_INODE_BITMAP_END 0x05000A /* Free inodes count for group wrong */ @@ -893,16 +944,22 @@ struct problem_context { /* Block range not used, but marked in bitmap */ #define PR_5_BLOCK_RANGE_UNUSED 0x050014 - + /* 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 - + /* Inode rangeused, but not marked used in bitmap */ #define PR_5_INODE_RANGE_USED 0x050017 +/* 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 + /* * Post-Pass 5 errors */ @@ -921,6 +978,6 @@ void clear_problem_context(struct problem_context *ctx); /* message.c */ void print_e2fsck_message(e2fsck_t ctx, const char *msg, - struct problem_context *pctx, int first, + struct problem_context *pctx, int first, int recurse);