Whamcloud - gitweb
e2fsck: allow deleting or zeroing shared blocks
[tools/e2fsprogs.git] / e2fsck / problem.c
index 5359d6b..b56b4d9 100644 (file)
@@ -174,7 +174,7 @@ static struct e2fsck_problem problem_table[] = {
          N_("Corruption found in @S.  (%s = %N).\n"),
          PROMPT_NONE, PR_AFTER_CODE, PR_0_SB_CORRUPT },
 
-       /* Error determing physical device size of filesystem */
+       /* Error determining physical device size of filesystem */
        { PR_0_GETSIZE_ERROR,
          N_("Error determining size of the physical @v: %m\n"),
          PROMPT_NONE, PR_FATAL },
@@ -450,7 +450,7 @@ static struct e2fsck_problem problem_table[] = {
 
        /* Superblock MMP block checksum does not match MMP block. */
        { PR_0_MMP_CSUM_INVALID,
-         N_("@S MMP @b checksum does not match MMP @b.  "),
+         N_("@S MMP @b checksum does not match.  "),
          PROMPT_FIX, PR_PREEN_OK | PR_NO_OK},
 
        /* Superblock 64bit filesystem needs extents to access the whole disk */
@@ -488,6 +488,16 @@ static struct e2fsck_problem problem_table[] = {
          N_("Bad desired extra isize in @S (%N).  "),
          PROMPT_FIX, 0 },
 
+       /* Invalid quota inode number */
+       { PR_0_INVALID_QUOTA_INO,
+         N_("Invalid %U @q @i %i.  "),
+         PROMPT_FIX, 0 },
+
+       /* Too many inodes in the filesystem */
+       { PR_0_INODE_COUNT_BIG,
+         N_("@S would have too many inodes (%N).\n"),
+         PROMPT_NONE, PR_AFTER_CODE, PR_0_SB_CORRUPT },
+
        /* Pass 1 errors */
 
        /* Pass 1: Checking inodes, blocks, and sizes */
@@ -1145,6 +1155,23 @@ static struct e2fsck_problem problem_table[] = {
          N_("Timestamp(s) on @i %i beyond 2310-04-04 are likely pre-1970.\n"),
          PROMPT_FIX, PR_PREEN_OK | PR_NO_OK },
 
+       /* Inode has illegal extended attribute value inode */
+       { PR_1_ATTR_VALUE_EA_INODE,
+         N_("@i %i has @I @a value @i %N.\n"),
+         PROMPT_CLEAR, PR_PREEN_OK },
+
+       /* Inode has invalid extended attribute. EA inode missing
+        * EA_INODE flag. */
+       { PR_1_ATTR_NO_EA_INODE_FL,
+         N_("@i %i has @n @a. EA @i %N missing EA_INODE flag.\n"),
+         PROMPT_CLEAR, PR_PREEN_OK },
+
+       /* EA inode for parent inode missing EA_INODE flag. */
+       { PR_1_ATTR_SET_EA_INODE_FL,
+         N_("EA @i %N for parent @i %i missing EA_INODE flag.\n "),
+         PROMPT_FIX, PR_PREEN_OK },
+
+
        /* Pass 1b errors */
 
        /* Pass 1B: Rescan for duplicate/bad blocks */
@@ -1242,6 +1269,14 @@ static struct e2fsck_problem problem_table[] = {
        { PR_1D_CLONE_ERROR,
          N_("Couldn't clone file: %m\n"), PROMPT_NONE, 0 },
 
+       /* File with shared blocks found */
+       { PR_1D_DISCONNECT_QUESTION,
+         N_("File with shared blocks found\n"), PROMPT_CONNECT, 0 },
+
+       /* Couldn't unlink file (error) */
+       { PR_1D_DISCONNECT_ERROR,
+         N_("Couldn't unlink file: %m\n"), PROMPT_NONE, 0 },
+
        /* Pass 1E Extent tree optimization     */
 
        /* Pass 1E: Optimizing extent trees */
@@ -1306,7 +1341,7 @@ static struct e2fsck_problem problem_table[] = {
          N_("@E has @D/unused @i %Di.  "),
          PROMPT_CLEAR, PR_PREEN_OK },
 
-       /* Directry entry is link to '.' */
+       /* Directory entry is link to '.' */
        { PR_2_LINK_DOT,
          N_("@E @L to '.'  "),
          PROMPT_CLEAR, 0 },
@@ -1321,7 +1356,7 @@ static struct e2fsck_problem problem_table[] = {
          N_("@E @L to @d %P (%Di).\n"),
          PROMPT_CLEAR, 0 },
 
-       /* Directory entry contains a link to the root directry */
+       /* Directory entry contains a link to the root directory */
        { PR_2_LINK_ROOT,
          N_("@E @L to the @r.\n"),
          PROMPT_CLEAR, 0 },
@@ -1361,9 +1396,9 @@ static struct e2fsck_problem problem_table[] = {
          N_("i_file_acl @F %If, @s zero.\n"),
          PROMPT_CLEAR, 0 },
 
-       /* i_dir_acl should be zero */
-       { PR_2_DIR_ACL_ZERO,
-         N_("i_dir_acl @F %Id, @s zero.\n"),
+       /* i_size_high should be zero */
+       { PR_2_DIR_SIZE_HIGH_ZERO,
+         N_("i_size_high @F %Id, @s zero.\n"),
          PROMPT_CLEAR, 0 },
 
        /* i_frag should be zero */
@@ -1852,6 +1887,15 @@ static struct e2fsck_problem problem_table[] = {
          "They @s the same!\n"),
          PROMPT_NONE, 0 },
 
+       { PR_4_EA_INODE_REF_COUNT,
+         N_("@a @i %i ref count is %N, @s %n. "),
+         PROMPT_FIX, PR_PREEN_OK },
+
+       /* directory exceeds max links, but no DIR_NLINK feature in superblock*/
+       { PR_4_DIR_NLINK_FEATURE,
+         N_("@d exceeds max links, but no DIR_NLINK feature in @S.\n"),
+         PROMPT_FIX, 0 },
+
        /* Pass 5 errors */
 
        /* Pass 5: Checking group summary information */