Whamcloud - gitweb
ext2fs_set_gdt_csum(): Return an error code on errors instead of void
[tools/e2fsprogs.git] / e2fsck / problem.h
index 4561c61..a2bd2b5 100644 (file)
@@ -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;
@@ -193,6 +193,21 @@ struct problem_context {
 /* Superblock hint for external journal incorrect */
 #define PR_0_EXTERNAL_JOURNAL_HINT             0x000033
 
+/* 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
+
 /*
  * Pass 1 errors
  */
@@ -449,6 +464,33 @@ struct problem_context {
 /* wrong EA hash value */
 #define PR_1_ATTR_HASH                 0x010054
 
+/* 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
+
 /*
  * Pass 1b errors
  */
@@ -702,6 +744,15 @@ struct problem_context {
 /* i_blocks_hi should be zero */
 #define PR_2_BLOCKS_HI_ZERO    0x020044
 
+/* 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
  */
@@ -890,10 +941,23 @@ struct problem_context {
 
 /* 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
+ */
+
+/* Recreate the journal if E2F_FLAG_JOURNAL_INODE flag is set */
+#define PR_6_RECREATE_JOURNAL          0x060001
+
 /*
  * Function declarations
  */
@@ -905,5 +969,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);