Whamcloud - gitweb
e2fsck: use "Optimize?" prompt for PR_1E_CAN_{COLLAPSE,NARROW}_EXTENT_TREE
authorTheodore Ts'o <tytso@mit.edu>
Sun, 16 Dec 2018 03:13:41 +0000 (22:13 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 16 Dec 2018 03:37:53 +0000 (22:37 -0500)
If e2fsck can optimize an inode's extent tree, it should ask for
permission to optimize it, not to "fix" it.  This was causing some
confusion, since some users interpreted this prompt as an indication
that the file system was inconsistent.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
e2fsck/problem.c
tests/d_punch/expect
tests/d_punch_bigalloc/expect
tests/f_collapse_extent_tree/expect.1
tests/f_compress_extent_tree_level/expect.1
tests/f_extent_bad_node/expect.1
tests/f_extent_int_bad_magic/expect.1
tests/f_extent_leaf_bad_magic/expect.1
tests/f_extent_oobounds/expect.1
tests/f_quota_extent_opt/expect.1

index 4082e37..0e6bace 100644 (file)
@@ -41,7 +41,8 @@
 #define PROMPT_UNLINK  17
 #define PROMPT_CLEAR_HTREE 18
 #define PROMPT_RECREATE 19
-#define PROMPT_NULL    20
+#define PROMPT_OPTIMIZE 20
+#define PROMPT_NULL    21
 
 /*
  * These are the prompts which are used to ask the user if they want
@@ -68,7 +69,8 @@ static const char *prompt[] = {
        N_("Unlink"),           /* 17 */
        N_("Clear HTree index"),/* 18 */
        N_("Recreate"),         /* 19 */
-       "",                     /* 20 */
+       N_("Optimize"),         /* 20 */
+       "",                     /* 21 */
 };
 
 /*
@@ -96,7 +98,8 @@ static const char *preen_msg[] = {
        N_("UNLINKED"),         /* 17 */
        N_("HTREE INDEX CLEARED"),/* 18 */
        N_("WILL RECREATE"),    /* 19 */
-       "",                     /* 20 */
+       N_("WILL OPTIMIZE"),    /* 20 */
+       "",                     /* 21 */
 };
 
 #if __GNUC_PREREQ (4, 6)
@@ -1313,12 +1316,12 @@ static struct e2fsck_problem problem_table[] = {
        /* Inode extent tree could be shorter */
        { PR_1E_CAN_COLLAPSE_EXTENT_TREE,
          N_("@i %i @x tree (at level %b) could be shorter.  "),
-         PROMPT_FIX, PR_NO_OK | PR_PREEN_NO | PR_PREEN_OK | PR_NOT_A_FIX, 0, 0, 0 },
+         PROMPT_OPTIMIZE, PR_NO_OK | PR_PREEN_NO | PR_PREEN_OK | PR_NOT_A_FIX, 0, 0, 0 },
 
        /* Inode extent tree could be narrower */
        { PR_1E_CAN_NARROW_EXTENT_TREE,
          N_("@i %i @x tree (at level %b) could be narrower.  "),
-         PROMPT_FIX, PR_NO_OK | PR_PREEN_NO | PR_PREEN_OK | PR_NOT_A_FIX, 0, 0, 0 },
+         PROMPT_OPTIMIZE, PR_NO_OK | PR_PREEN_NO | PR_PREEN_OK | PR_NOT_A_FIX, 0, 0, 0 },
 
        /* Pass 2 errors */
 
index 2b39f8e..b13462b 100644 (file)
@@ -127,37 +127,37 @@ Level Entries       Logical      Physical Length Flags
  0/ 0   1/  2     0 -     0  9000 -  9000      1 Uninit
  0/ 0   2/  2  8999 -  8999 17999 - 17999      1 Uninit
 Pass 1: Checking inodes, blocks, and sizes
-Inode 15 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 15 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 16 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 16 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 17 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 17 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 18 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 18 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 19 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 19 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 20 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 20 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 21 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 21 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 22 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 22 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 23 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 23 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 24 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 24 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 25 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 25 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 26 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 26 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 27 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 27 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 28 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 28 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 29 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 29 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 30 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 30 extent tree (at level 1) could be shorter.  Optimize? yes
 
 Pass 1E: Optimizing extent trees
 Pass 2: Checking directory structure
index 0138c3a..caeb3a6 100644 (file)
@@ -126,37 +126,37 @@ Level Entries       Logical      Physical Length Flags
  0/ 0   1/  2     0 -     0  9000 -  9000      1 Uninit
  0/ 0   2/  2  8999 -  8999 17999 - 17999      1 Uninit
 Pass 1: Checking inodes, blocks, and sizes
-Inode 14 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 14 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 15 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 15 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 16 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 16 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 17 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 17 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 18 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 18 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 19 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 19 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 20 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 20 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 22 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 22 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 23 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 23 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 24 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 24 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 25 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 25 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 26 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 26 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 27 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 27 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 28 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 28 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 29 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 29 extent tree (at level 1) could be shorter.  Optimize? yes
 
-Inode 30 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 30 extent tree (at level 1) could be shorter.  Optimize? yes
 
 Pass 1E: Optimizing extent trees
 Pass 2: Checking directory structure
index 8165a58..a62e99d 100644 (file)
@@ -3,7 +3,7 @@ Level Entries       Logical      Physical Length Flags
  0/ 1   1/  1     0 -     0     9              1
  1/ 1   1/  1     0 -     0    10 -    10      1 
 Pass 1: Checking inodes, blocks, and sizes
-Inode 12 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 12 extent tree (at level 1) could be shorter.  Optimize? yes
 
 Pass 1E: Optimizing extent trees
 Pass 2: Checking directory structure
index dd33f63..241faa3 100644 (file)
@@ -10,7 +10,7 @@ Level Entries       Logical      Physical Length Flags
  1/ 1   2/  3    19 -    19   104 -   104      1 
  1/ 1   3/  3    21 -    21   105 -   105      1 
 Pass 1: Checking inodes, blocks, and sizes
-Inode 12 extent tree (at level 1) could be narrower.  Fix? yes
+Inode 12 extent tree (at level 1) could be narrower.  Optimize? yes
 
 Pass 1E: Optimizing extent trees
 Pass 2: Checking directory structure
index 81c25a3..e6cdf97 100644 (file)
@@ -2,7 +2,7 @@ Pass 1: Checking inodes, blocks, and sizes
 Inode 12 has an invalid extent node (blk 22, lblk 0)
 Clear? yes
 
-Inode 12 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 12 extent tree (at level 1) could be shorter.  Optimize? yes
 
 Inode 12, i_blocks is 16, should be 8.  Fix? yes
 
index 52091ac..096be4c 100644 (file)
@@ -2,7 +2,7 @@ Pass 1: Checking inodes, blocks, and sizes
 Inode 12 has an invalid extent node (blk 1295, lblk 0)
 Clear? yes
 
-Inode 12 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 12 extent tree (at level 1) could be shorter.  Optimize? yes
 
 Inode 12, i_blocks is 712, should be 0.  Fix? yes
 
index 4c1777c..83b8157 100644 (file)
@@ -2,7 +2,7 @@ Pass 1: Checking inodes, blocks, and sizes
 Inode 12 has an invalid extent node (blk 1604, lblk 0)
 Clear? yes
 
-Inode 12 extent tree (at level 1) could be shorter.  Fix? yes
+Inode 12 extent tree (at level 1) could be shorter.  Optimize? yes
 
 Inode 12, i_blocks is 18, should be 0.  Fix? yes
 
index 056689f..9c32775 100644 (file)
@@ -3,7 +3,7 @@ Inode 12, end of extent exceeds allowed value
        (logical block 15, physical block 200, len 30)
 Clear? yes
 
-Inode 12 extent tree (at level 1) could be narrower.  Fix? yes
+Inode 12 extent tree (at level 1) could be narrower.  Optimize? yes
 
 Inode 12, i_blocks is 154, should be 94.  Fix? yes
 
index 1b96621..002c9b6 100644 (file)
@@ -1,5 +1,5 @@
 Pass 1: Checking inodes, blocks, and sizes
-Inode 12 extent tree (at level 1) could be narrower.  Fix? yes
+Inode 12 extent tree (at level 1) could be narrower.  Optimize? yes
 
 Pass 1E: Optimizing extent trees
 Pass 2: Checking directory structure