Whamcloud - gitweb
RELEASE-NOTES, ChangeLog:
[tools/e2fsprogs.git] / e2fsck / problem.h
index 323b60b..5df40ef 100644 (file)
@@ -13,7 +13,7 @@ typedef __u32 problem_t;
 
 struct problem_context {
        errcode_t       errcode;
-       ino_t ino, ino2, dir;
+       ext2_ino_t ino, ino2, dir;
        struct ext2_inode *inode;
        struct ext2_dir_entry *dirent;
        blk_t   blk, blk2;
@@ -28,13 +28,14 @@ struct problem_context {
  * handled as a set.  The user answers once for a particular latch
  * group.
  */
-#define PR_LATCH_MASK  0x0070  /* Latch mask */
+#define PR_LATCH_MASK  0x0ff0  /* Latch mask */
 #define PR_LATCH_BLOCK 0x0010  /* Latch for illegal blocks (pass 1) */
 #define PR_LATCH_BBLOCK        0x0020  /* Latch for bad block inode blocks (pass 1) */
 #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 */
+#define PR_LATCH_LOW_DTIME 0x0070 /* Latch for pass1 orphaned list refugees */
 
 #define PR_LATCH(x)    ((((x) & PR_LATCH_MASK) >> 4) - 1)
 
@@ -127,6 +128,33 @@ struct problem_context {
 /* Superblock recovery flag clear - journal needs to be reset */
 #define PR_0_JOURNAL_RESET_PROMPT 0x000019
 
+/* Filesystem revision is 0, but feature flags are set */
+#define PR_0_FS_REV_LEVEL      0x00001A
+
+/* 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
+
+/* Illegal inode in orphaned inode list */
+#define PR_0_ORPHAN_ILLEGAL_INODE              0x000024
+
+/* 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
+
+/* Journal has unsupported version number */
+#define PR_0_JOURNAL_UNSUPP_VERSION            0x000027
+
 /*
  * Pass 1 errors
  */
@@ -201,73 +229,73 @@ struct problem_context {
 #define PR_1_BBINODE_BAD_METABLOCK_PROMPT 0x010016
        
 /* Bad primary block */
-#define PR_1_BAD_PRIMARY_BLOCK         0x0100017
+#define PR_1_BAD_PRIMARY_BLOCK         0x010017
                  
 /* Bad primary block prompt */
-#define PR_1_BAD_PRIMARY_BLOCK_PROMPT  0x0100018
+#define PR_1_BAD_PRIMARY_BLOCK_PROMPT  0x010018
 
 /* Bad primary superblock */
-#define PR_1_BAD_PRIMARY_SUPERBLOCK    0x0100019
+#define PR_1_BAD_PRIMARY_SUPERBLOCK    0x010019
 
 /* Bad primary block group descriptors */
-#define PR_1_BAD_PRIMARY_GROUP_DESCRIPTOR 0x010001A
+#define PR_1_BAD_PRIMARY_GROUP_DESCRIPTOR 0x01001A
 
 /* Bad superblock in group */
-#define PR_1_BAD_SUPERBLOCK            0x010001B
+#define PR_1_BAD_SUPERBLOCK            0x01001B
 
 /* Bad block group descriptors in group */
-#define PR_1_BAD_GROUP_DESCRIPTORS     0x010001C
+#define PR_1_BAD_GROUP_DESCRIPTORS     0x01001C
 
 /* Block claimed for no reason */        
-#define PR_1_PROGERR_CLAIMED_BLOCK     0x010001D
+#define PR_1_PROGERR_CLAIMED_BLOCK     0x01001D
 
 /* Error allocating blocks for relocating metadata */
-#define PR_1_RELOC_BLOCK_ALLOCATE      0x010001E
+#define PR_1_RELOC_BLOCK_ALLOCATE      0x01001E
                
 /* Error allocating block buffer during relocation process */
-#define PR_1_RELOC_MEMORY_ALLOCATE     0x010001F
+#define PR_1_RELOC_MEMORY_ALLOCATE     0x01001F
                
 /* Relocating metadata group information from X to Y */        
-#define PR_1_RELOC_FROM_TO             0x0100020
+#define PR_1_RELOC_FROM_TO             0x010020
                
 /* Relocating metatdata group information to X */
-#define PR_1_RELOC_TO                  0x0100021
+#define PR_1_RELOC_TO                  0x010021
                
 /* Block read error during relocation process */
-#define PR_1_RELOC_READ_ERR            0x0100022
+#define PR_1_RELOC_READ_ERR            0x010022
                
 /* Block write error during relocation process */
-#define PR_1_RELOC_WRITE_ERR           0x0100023
+#define PR_1_RELOC_WRITE_ERR           0x010023
 
 /* Error allocating inode bitmap */
-#define PR_1_ALLOCATE_IBITMAP_ERROR    0x0100024
+#define PR_1_ALLOCATE_IBITMAP_ERROR    0x010024
 
 /* Error allocating block bitmap */
-#define PR_1_ALLOCATE_BBITMAP_ERROR    0x0100025
+#define PR_1_ALLOCATE_BBITMAP_ERROR    0x010025
 
 /* Error allocating icount structure */
-#define PR_1_ALLOCATE_ICOUNT           0x0100026
+#define PR_1_ALLOCATE_ICOUNT           0x010026
        
 /* Error allocating dbcount */
-#define PR_1_ALLOCATE_DBCOUNT          0x0100027
+#define PR_1_ALLOCATE_DBCOUNT          0x010027
 
 /* Error while scanning inodes */
-#define PR_1_ISCAN_ERROR               0x0100028
+#define PR_1_ISCAN_ERROR               0x010028
 
 /* Error while iterating over blocks */
-#define PR_1_BLOCK_ITERATE             0x0100029
+#define PR_1_BLOCK_ITERATE             0x010029
 
 /* Error while storing inode count information */        
-#define PR_1_ICOUNT_STORE              0x010002A
+#define PR_1_ICOUNT_STORE              0x01002A
 
 /* Error while storing directory block information */    
-#define PR_1_ADD_DBLOCK                        0x010002B
+#define PR_1_ADD_DBLOCK                        0x01002B
 
 /* Error while reading inode (for clearing) */
-#define PR_1_READ_INODE                        0x010002C
+#define PR_1_READ_INODE                        0x01002C
 
 /* Suppress messages prompt */
-#define PR_1_SUPPRESS_MESSAGES         0x010002D
+#define PR_1_SUPPRESS_MESSAGES         0x01002D
 
 /* Filesystem contains large files, but has no such flag in sb */
 #define PR_1_FEATURE_LARGE_FILES       0x01002E
@@ -284,6 +312,21 @@ struct problem_context {
 /* Non-zero size on on device, fifo or socket inode */
 #define PR_1_SET_NONZSIZE              0x010032
 
+/* Filesystem revision is 0, but feature flags are set */
+#define PR_1_FS_REV_LEVEL              0x010033
+
+/* Journal inode not in use, needs clearing */
+#define PR_1_JOURNAL_INODE_NOT_CLEAR   0x010034
+
+/* Journal inode has wrong mode */
+#define PR_1_JOURNAL_BAD_MODE          0x010035
+
+/* 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
+       
 /*
  * Pass 1b errors
  */
@@ -306,7 +349,10 @@ struct problem_context {
 /* Error allocating inode bitmap */
 #define PR_1B_ALLOCATE_IBITMAP_ERROR 0x011005
 
+/* Error while iterating over blocks */
+#define PR_1B_BLOCK_ITERATE    0x0110006
 
+       
 /* Pass 1C: Scan directories for inodes with dup blocks. */
 #define PR_1C_PASS_HEADER      0x012000
 
@@ -471,6 +517,9 @@ struct problem_context {
 /* Directory filename can't be zero-length  */
 #define PR_2_NULL_NAME         0x020030
 
+/* Invalid fast symlink size */
+#define PR_2_SYMLINK_SIZE      0x020031
+
 /*
  * Pass 3 errors
  */