Whamcloud - gitweb
misc: fix broken libmagic interaction with plausibility check
[tools/e2fsprogs.git] / e2fsck / problem.c
index b982a27..a4da64b 100644 (file)
@@ -126,7 +126,7 @@ static struct e2fsck_problem problem_table[] = {
          "    e2fsck -b 8193 <@v>\n"
          " or\n"
          "    e2fsck -b 32768 <@v>\n\n"),
-         PROMPT_NONE, PR_FATAL },
+         PROMPT_NONE, 0 },
 
        /* Filesystem size is wrong */
        { PR_0_FS_SIZE_WRONG,
@@ -454,6 +454,16 @@ static struct e2fsck_problem problem_table[] = {
          N_("@S 64bit filesystems needs extents to access the whole disk.  "),
          PROMPT_FIX, PR_PREEN_OK | PR_NO_OK},
 
+       /* The first_meta_bg is too big */
+       { PR_0_FIRST_META_BG_TOO_BIG,
+         N_("First_meta_bg is too big.  (%N, max value %g).  "),
+         PROMPT_CLEAR, 0 },
+
+       /* External journal has corrupt superblock */
+       { PR_0_EXT_JOURNAL_SUPER_CSUM_INVALID,
+         N_("External @j @S checksum does not match @S.  "),
+         PROMPT_FIX, PR_PREEN_OK },
+
        /* Pass 1 errors */
 
        /* Pass 1: Checking inodes, blocks, and sizes */
@@ -774,7 +784,7 @@ static struct e2fsck_problem problem_table[] = {
 
        /* Error allocating EA region allocation structure */
        { PR_1_EA_ALLOC_REGION_ABORT,
-         N_("@A @a @b %b.  "),
+         N_("@A @a region allocation structure.  "),
          PROMPT_NONE, PR_FATAL},
 
        /* Error EA allocation collision */
@@ -1045,6 +1055,52 @@ static struct e2fsck_problem problem_table[] = {
          N_("@i %i logical @b %b (physical @b %c) violates cluster allocation rules.\nWill fix in pass 1B.\n"),
          PROMPT_NONE, 0 },
 
+       /* Inode has INLINE_DATA_FL flag but extended attribute not found */
+       { PR_1_INLINE_DATA_NO_ATTR,
+         N_("@i %i has INLINE_DATA_FL flag but @a not found.  "),
+         PROMPT_TRUNCATE, 0 },
+
+       /* Extents/inlinedata flag set on a device or socket inode */
+       { PR_1_SPECIAL_EXTENTS_IDATA,
+         N_("Special (@v/socket/fifo) file (@i %i) has extents\n"
+            "or inline-data flag set.  "),
+         PROMPT_CLEAR, PR_PREEN_OK | PR_PREEN_NO | PR_NO_OK },
+
+       /* Inode has extent header but inline data flag is set */
+       { PR_1_CLEAR_INLINE_DATA_FOR_EXTENT,
+         N_("@i %i has @x header but inline data flag is set.\n"),
+         PROMPT_FIX, 0 },
+
+       /* Inode seems to have inline data but extent flag is set */
+       { PR_1_CLEAR_EXTENT_FOR_INLINE_DATA,
+         N_("@i %i seems to have inline data but @x flag is set.\n"),
+         PROMPT_FIX, 0 },
+
+       /* Inode seems to have block map but inline data and extent flags set */
+       { PR_1_CLEAR_EXTENT_INLINE_DATA_FLAGS,
+         N_("@i %i seems to have @b map but inline data and @x flags set.\n"),
+         PROMPT_FIX, 0 },
+
+       /* Inode has inline data and extent flags but i_block contains junk */
+       { PR_1_CLEAR_EXTENT_INLINE_DATA_INODE,
+         N_("@i %i has inline data and @x flags set but i_block contains junk.\n"),
+         PROMPT_CLEAR_INODE, 0 },
+
+       /* Bad block list says the bad block list inode is bad */
+       { PR_1_BADBLOCKS_IN_BADBLOCKS,
+         N_("Bad block list says the bad block list @i is bad.  "),
+         PROMPT_CLEAR_INODE, 0 },
+
+       /* Error allocating extent region allocation structure */
+       { PR_1_EXTENT_ALLOC_REGION_ABORT,
+         N_("@A @x region allocation structure.  "),
+         PROMPT_NONE, PR_FATAL},
+
+       /* Inode has a duplicate extent mapping */
+       { PR_1_EXTENT_COLLISION,
+         N_("@i %i has a duplicate @x mapping\n\t(logical @b %c, @n physical @b %b, len %N)\n"),
+         PROMPT_CLEAR, 0 },
+
        /* Pass 1b errors */
 
        /* Pass 1B: Rescan for duplicate/bad blocks */
@@ -1492,6 +1548,16 @@ static struct e2fsck_problem problem_table[] = {
          N_("@d @i %i, %B, offset %N: @d passes checks but fails checksum.\n"),
          PROMPT_FIX, PR_PREEN_OK },
 
+       /* inline directory inode size must be a multiple of 4 */
+       { PR_2_BAD_INLINE_DIR_SIZE,
+         N_("Inline @d @i %i size (%N) must be a multiple of 4.\n"),
+         PROMPT_FIX, 0 },
+
+       /* fixing size of inline directory inode failed */
+       { PR_2_FIX_INLINE_DIR_FAILED,
+         N_("Fixing size of inline @d @i %i failed.\n"),
+         PROMPT_TRUNCATE, 0 },
+
        /* Pass 3 errors */
 
        /* Pass 3: Checking directory connectivity */
@@ -1845,6 +1911,21 @@ static struct e2fsck_problem problem_table[] = {
          N_("Update quota info for quota type %N"),
          PROMPT_NULL, PR_PREEN_OK },
 
+       /* Error setting block group checksum info */
+       { PR_6_SET_BG_CHECKSUM,
+         N_("Error setting @b @g checksum info: %m\n"),
+         PROMPT_NULL, PR_FATAL },
+
+       /* Error writing file system info */
+       { PR_6_FLUSH_FILESYSTEM,
+         N_("Error writing file system info: %m\n"),
+         PROMPT_NULL, PR_FATAL },
+
+       /* Error flushing writes to storage device */
+       { PR_6_IO_FLUSH,
+         N_("Error flushing writes to storage device: %m\n"),
+         PROMPT_NULL, PR_FATAL },
+
        { 0 }
 };