diff options
author | Mike Frysinger <vapier@gentoo.org> | 2006-03-08 07:03:27 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2006-03-08 07:03:27 +0000 |
commit | 874af85d5eb08b65476f406f6a1e7edc127ac210 (patch) | |
tree | 1cb4ee52f1592350dd9c4471b2a334957cc42b5e /e2fsprogs/e2fsck.c | |
parent | 0f2dd9f4eb9007bf44aa3f0cf30a35c36fbbd5b2 (diff) | |
download | busybox-w32-874af85d5eb08b65476f406f6a1e7edc127ac210.tar.gz busybox-w32-874af85d5eb08b65476f406f6a1e7edc127ac210.tar.bz2 busybox-w32-874af85d5eb08b65476f406f6a1e7edc127ac210.zip |
import most of e2fsprogs 1.38 updates
Diffstat (limited to 'e2fsprogs/e2fsck.c')
-rw-r--r-- | e2fsprogs/e2fsck.c | 173 |
1 files changed, 92 insertions, 81 deletions
diff --git a/e2fsprogs/e2fsck.c b/e2fsprogs/e2fsck.c index 18dfd00b6..fb1e772a4 100644 --- a/e2fsprogs/e2fsck.c +++ b/e2fsprogs/e2fsck.c | |||
@@ -3712,6 +3712,8 @@ err_out: | |||
3712 | * @j journal | 3712 | * @j journal |
3713 | * @l lost+found | 3713 | * @l lost+found |
3714 | * @L is a link | 3714 | * @L is a link |
3715 | * @m multiply-claimed | ||
3716 | * @n invalid | ||
3715 | * @o orphaned | 3717 | * @o orphaned |
3716 | * @p problem in | 3718 | * @p problem in |
3717 | * @r root inode | 3719 | * @r root inode |
@@ -3749,6 +3751,8 @@ static const char * const abbrevs[] = { | |||
3749 | N_("hHTREE @d @i"), | 3751 | N_("hHTREE @d @i"), |
3750 | N_("llost+found"), | 3752 | N_("llost+found"), |
3751 | N_("Lis a link"), | 3753 | N_("Lis a link"), |
3754 | N_("mmultiply-claimed"), | ||
3755 | N_("ninvalid"), | ||
3752 | N_("oorphaned"), | 3756 | N_("oorphaned"), |
3753 | N_("pproblem in"), | 3757 | N_("pproblem in"), |
3754 | N_("rroot @i"), | 3758 | N_("rroot @i"), |
@@ -4698,7 +4702,8 @@ static void e2fsck_pass1(e2fsck_t ctx) | |||
4698 | if (ctx->progress) | 4702 | if (ctx->progress) |
4699 | if ((ctx->progress)(ctx, 1, 0, ctx->fs->group_desc_count)) | 4703 | if ((ctx->progress)(ctx, 1, 0, ctx->fs->group_desc_count)) |
4700 | return; | 4704 | return; |
4701 | if (fs->super->s_wtime < fs->super->s_inodes_count) | 4705 | if ((fs->super->s_wtime < fs->super->s_inodes_count) || |
4706 | (fs->super->s_mtime < fs->super->s_inodes_count)) | ||
4702 | busted_fs_time = 1; | 4707 | busted_fs_time = 1; |
4703 | 4708 | ||
4704 | while (1) { | 4709 | while (1) { |
@@ -5052,6 +5057,11 @@ static void e2fsck_pass1(e2fsck_t ctx) | |||
5052 | ctx->flags |= E2F_FLAG_ABORT; | 5057 | ctx->flags |= E2F_FLAG_ABORT; |
5053 | return; | 5058 | return; |
5054 | } | 5059 | } |
5060 | e2fsck_read_inode(ctx, EXT2_RESIZE_INO, inode, | ||
5061 | "recreate inode"); | ||
5062 | inode->i_mtime = time(0); | ||
5063 | e2fsck_write_inode(ctx, EXT2_RESIZE_INO, inode, | ||
5064 | "recreate inode"); | ||
5055 | fs->block_map = save_bmap; | 5065 | fs->block_map = save_bmap; |
5056 | ctx->flags &= ~E2F_FLAG_RESIZE_INODE; | 5066 | ctx->flags &= ~E2F_FLAG_RESIZE_INODE; |
5057 | } | 5067 | } |
@@ -6702,7 +6712,7 @@ static void pass1d(e2fsck_t ctx, char *block_buf) | |||
6702 | shared_len = 0; | 6712 | shared_len = 0; |
6703 | file_ok = 1; | 6713 | file_ok = 1; |
6704 | ino = (ext2_ino_t)VOIDPTR_TO_INT(dnode_getkey(n)); | 6714 | ino = (ext2_ino_t)VOIDPTR_TO_INT(dnode_getkey(n)); |
6705 | if (ino == EXT2_BAD_INO) | 6715 | if (ino == EXT2_BAD_INO || ino == EXT2_RESIZE_INO) |
6706 | continue; | 6716 | continue; |
6707 | 6717 | ||
6708 | /* | 6718 | /* |
@@ -10052,7 +10062,7 @@ static const char * const prompt[] = { | |||
10052 | N_("Abort"), /* 11 */ | 10062 | N_("Abort"), /* 11 */ |
10053 | N_("Split"), /* 12 */ | 10063 | N_("Split"), /* 12 */ |
10054 | N_("Continue"), /* 13 */ | 10064 | N_("Continue"), /* 13 */ |
10055 | N_("Clone duplicate/bad blocks"), /* 14 */ | 10065 | N_("Clone multiply-claimed blocks"), /* 14 */ |
10056 | N_("Delete file"), /* 15 */ | 10066 | N_("Delete file"), /* 15 */ |
10057 | N_("Suppress messages"),/* 16 */ | 10067 | N_("Suppress messages"),/* 16 */ |
10058 | N_("Unlink"), /* 17 */ | 10068 | N_("Unlink"), /* 17 */ |
@@ -10080,7 +10090,7 @@ static const char * const preen_msg[] = { | |||
10080 | N_("ABORTED"), /* 11 */ | 10090 | N_("ABORTED"), /* 11 */ |
10081 | N_("SPLIT"), /* 12 */ | 10091 | N_("SPLIT"), /* 12 */ |
10082 | N_("CONTINUING"), /* 13 */ | 10092 | N_("CONTINUING"), /* 13 */ |
10083 | N_("DUPLICATE/BAD BLOCKS CLONED"), /* 14 */ | 10093 | N_("MULTIPLY-CLAIMED BLOCKS CLONED"), /* 14 */ |
10084 | N_("FILE DELETED"), /* 15 */ | 10094 | N_("FILE DELETED"), /* 15 */ |
10085 | N_("SUPPRESSED"), /* 16 */ | 10095 | N_("SUPPRESSED"), /* 16 */ |
10086 | N_("UNLINKED"), /* 17 */ | 10096 | N_("UNLINKED"), /* 17 */ |
@@ -10147,12 +10157,11 @@ static const struct e2fsck_problem problem_table[] = { | |||
10147 | 10157 | ||
10148 | /* Relocate hint */ | 10158 | /* Relocate hint */ |
10149 | { PR_0_RELOCATE_HINT, | 10159 | { PR_0_RELOCATE_HINT, |
10150 | N_("Note: if there is several inode or block bitmap blocks\n" | 10160 | N_("Note: if several inode or block bitmap blocks or part\n" |
10151 | "which require relocation, or one part of the inode table\n" | 10161 | "of the inode table require relocation, you may wish to try\n" |
10152 | "which must be moved, you may wish to try running e2fsck\n" | 10162 | "running e2fsck with the '-b %S' option first. The problem\n" |
10153 | "with the '-b %S' option first. The problem may lie only\n" | 10163 | "may lie only with the primary block group descriptors, and\n" |
10154 | "with the primary block group descriptor, and the backup\n" | 10164 | "the backup block group descriptors may be OK.\n\n"), |
10155 | "block group descriptor may be OK.\n\n"), | ||
10156 | PROMPT_NONE, PR_PREEN_OK | PR_NOCOLLATE }, | 10165 | PROMPT_NONE, PR_PREEN_OK | PR_NOCOLLATE }, |
10157 | 10166 | ||
10158 | /* Miscellaneous superblock corruption */ | 10167 | /* Miscellaneous superblock corruption */ |
@@ -10167,7 +10176,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
10167 | 10176 | ||
10168 | /* Inode count in superblock is incorrect */ | 10177 | /* Inode count in superblock is incorrect */ |
10169 | { PR_0_INODE_COUNT_WRONG, | 10178 | { PR_0_INODE_COUNT_WRONG, |
10170 | N_("@i count in @S is %i, should be %j.\n"), | 10179 | N_("@i count in @S is %i, @s %j.\n"), |
10171 | PROMPT_FIX, 0 }, | 10180 | PROMPT_FIX, 0 }, |
10172 | 10181 | ||
10173 | { PR_0_HURD_CLEAR_FILETYPE, | 10182 | { PR_0_HURD_CLEAR_FILETYPE, |
@@ -10176,7 +10185,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
10176 | 10185 | ||
10177 | /* Journal inode is invalid */ | 10186 | /* Journal inode is invalid */ |
10178 | { PR_0_JOURNAL_BAD_INODE, | 10187 | { PR_0_JOURNAL_BAD_INODE, |
10179 | N_("@S has a bad ext3 @j (@i %i).\n"), | 10188 | N_("@S has an @n ext3 @j (@i %i).\n"), |
10180 | PROMPT_CLEAR, PR_PREEN_OK }, | 10189 | PROMPT_CLEAR, PR_PREEN_OK }, |
10181 | 10190 | ||
10182 | /* The external journal has (unsupported) multiple filesystems */ | 10191 | /* The external journal has (unsupported) multiple filesystems */ |
@@ -10224,7 +10233,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
10224 | 10233 | ||
10225 | /* Journal has data, but recovery flag is clear */ | 10234 | /* Journal has data, but recovery flag is clear */ |
10226 | { PR_0_JOURNAL_RECOVERY_CLEAR, | 10235 | { PR_0_JOURNAL_RECOVERY_CLEAR, |
10227 | N_("ext3 recovery flag clear, but @j has data.\n"), | 10236 | N_("ext3 recovery flag is clear, but @j has data.\n"), |
10228 | PROMPT_NONE, 0 }, | 10237 | PROMPT_NONE, 0 }, |
10229 | 10238 | ||
10230 | /* Ask if we should clear the journal */ | 10239 | /* Ask if we should clear the journal */ |
@@ -10269,7 +10278,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
10269 | 10278 | ||
10270 | /* Filesystem revision is 0, but feature flags are set */ | 10279 | /* Filesystem revision is 0, but feature flags are set */ |
10271 | { PR_0_FS_REV_LEVEL, | 10280 | { PR_0_FS_REV_LEVEL, |
10272 | "@f has feature flag(s) set, but is a revision 0 @f. ", | 10281 | N_("@f has feature flag(s) set, but is a revision 0 @f. "), |
10273 | PROMPT_FIX, PR_PREEN_OK | PR_NO_OK }, | 10282 | PROMPT_FIX, PR_PREEN_OK | PR_NO_OK }, |
10274 | 10283 | ||
10275 | /* Journal superblock has an unknown read-only feature flag set */ | 10284 | /* Journal superblock has an unknown read-only feature flag set */ |
@@ -10289,7 +10298,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
10289 | 10298 | ||
10290 | /* Moving journal to hidden file */ | 10299 | /* Moving journal to hidden file */ |
10291 | { PR_0_MOVE_JOURNAL, | 10300 | { PR_0_MOVE_JOURNAL, |
10292 | N_("Moving @j from /%s to hidden inode.\n\n"), | 10301 | N_("Moving @j from /%s to hidden @i.\n\n"), |
10293 | PROMPT_NONE, 0 }, | 10302 | PROMPT_NONE, 0 }, |
10294 | 10303 | ||
10295 | /* Error moving journal to hidden file */ | 10304 | /* Error moving journal to hidden file */ |
@@ -10299,7 +10308,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
10299 | 10308 | ||
10300 | /* Clearing V2 journal superblock */ | 10309 | /* Clearing V2 journal superblock */ |
10301 | { PR_0_CLEAR_V2_JOURNAL, | 10310 | { PR_0_CLEAR_V2_JOURNAL, |
10302 | N_("Found invalid V2 @j @S fields (from V1 journal).\n" | 10311 | N_("Found @n V2 @j @S fields (from V1 @j).\n" |
10303 | "Clearing fields beyond the V1 @j @S...\n\n"), | 10312 | "Clearing fields beyond the V1 @j @S...\n\n"), |
10304 | PROMPT_NONE, 0 }, | 10313 | PROMPT_NONE, 0 }, |
10305 | 10314 | ||
@@ -10316,7 +10325,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
10316 | 10325 | ||
10317 | /* Resize_inode not enabled, but resize inode is non-zero */ | 10326 | /* Resize_inode not enabled, but resize inode is non-zero */ |
10318 | { PR_0_CLEAR_RESIZE_INODE, | 10327 | { PR_0_CLEAR_RESIZE_INODE, |
10319 | N_("Resize_@i not enabled, but the resize inode is non-zero. "), | 10328 | N_("Resize_@i not enabled, but the resize @i is non-zero. "), |
10320 | PROMPT_CLEAR, 0 }, | 10329 | PROMPT_CLEAR, 0 }, |
10321 | 10330 | ||
10322 | /* Resize inode invalid */ | 10331 | /* Resize inode invalid */ |
@@ -10342,7 +10351,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
10342 | 10351 | ||
10343 | /* Reserved inode has bad mode */ | 10352 | /* Reserved inode has bad mode */ |
10344 | { PR_1_RESERVED_BAD_MODE, | 10353 | { PR_1_RESERVED_BAD_MODE, |
10345 | N_("Reserved @i %i %Q has bad mode. "), | 10354 | N_("Reserved @i %i (%Q) has @n mode. "), |
10346 | PROMPT_CLEAR, PR_PREEN_OK }, | 10355 | PROMPT_CLEAR, PR_PREEN_OK }, |
10347 | 10356 | ||
10348 | /* Deleted inode has zero dtime */ | 10357 | /* Deleted inode has zero dtime */ |
@@ -10449,9 +10458,8 @@ static const struct e2fsck_problem problem_table[] = { | |||
10449 | 10458 | ||
10450 | /* Bad primary block prompt */ | 10459 | /* Bad primary block prompt */ |
10451 | { PR_1_BAD_PRIMARY_BLOCK_PROMPT, | 10460 | { PR_1_BAD_PRIMARY_BLOCK_PROMPT, |
10452 | N_("You can clear the this @b (and hope for the best) from the\n" | 10461 | N_("You can remove this @b from the bad @b list and hope\n" |
10453 | "bad @b list and hope that @b is really OK, but there are no\n" | 10462 | "that the @b is really OK. But there are no guarantees.\n\n"), |
10454 | "guarantees.\n\n"), | ||
10455 | PROMPT_CLEAR, PR_PREEN_NOMSG }, | 10463 | PROMPT_CLEAR, PR_PREEN_NOMSG }, |
10456 | 10464 | ||
10457 | /* Bad primary superblock */ | 10465 | /* Bad primary superblock */ |
@@ -10514,12 +10522,12 @@ static const struct e2fsck_problem problem_table[] = { | |||
10514 | 10522 | ||
10515 | /* Error allocating inode bitmap */ | 10523 | /* Error allocating inode bitmap */ |
10516 | { PR_1_ALLOCATE_IBITMAP_ERROR, | 10524 | { PR_1_ALLOCATE_IBITMAP_ERROR, |
10517 | "@A @i @B (%N): %m\n", | 10525 | N_("@A @i @B (%N): %m\n"), |
10518 | PROMPT_NONE, PR_FATAL }, | 10526 | PROMPT_NONE, PR_FATAL }, |
10519 | 10527 | ||
10520 | /* Error allocating block bitmap */ | 10528 | /* Error allocating block bitmap */ |
10521 | { PR_1_ALLOCATE_BBITMAP_ERROR, | 10529 | { PR_1_ALLOCATE_BBITMAP_ERROR, |
10522 | "@A @b @B (%N): %m\n", | 10530 | N_("@A @b @B (%N): %m\n"), |
10523 | PROMPT_NONE, PR_FATAL }, | 10531 | PROMPT_NONE, PR_FATAL }, |
10524 | 10532 | ||
10525 | /* Error allocating icount structure */ | 10533 | /* Error allocating icount structure */ |
@@ -10579,17 +10587,17 @@ static const struct e2fsck_problem problem_table[] = { | |||
10579 | 10587 | ||
10580 | /* Non-zero size for device, fifo or socket inode */ | 10588 | /* Non-zero size for device, fifo or socket inode */ |
10581 | { PR_1_SET_NONZSIZE, | 10589 | { PR_1_SET_NONZSIZE, |
10582 | "Special (@v/socket/fifo) @i %i has non-zero size. ", | 10590 | N_("Special (@v/socket/fifo) @i %i has non-zero size. "), |
10583 | PROMPT_FIX, PR_PREEN_OK }, | 10591 | PROMPT_FIX, PR_PREEN_OK }, |
10584 | 10592 | ||
10585 | /* Filesystem revision is 0, but feature flags are set */ | 10593 | /* Filesystem revision is 0, but feature flags are set */ |
10586 | { PR_1_FS_REV_LEVEL, | 10594 | { PR_1_FS_REV_LEVEL, |
10587 | "@f has feature flag(s) set, but is a revision 0 @f. ", | 10595 | N_("@f has feature flag(s) set, but is a revision 0 @f. "), |
10588 | PROMPT_FIX, PR_PREEN_OK | PR_NO_OK }, | 10596 | PROMPT_FIX, PR_PREEN_OK | PR_NO_OK }, |
10589 | 10597 | ||
10590 | /* Journal inode is not in use, but contains data */ | 10598 | /* Journal inode is not in use, but contains data */ |
10591 | { PR_1_JOURNAL_INODE_NOT_CLEAR, | 10599 | { PR_1_JOURNAL_INODE_NOT_CLEAR, |
10592 | "@j @i is not in use, but contains data. ", | 10600 | N_("@j @i is not in use, but contains data. "), |
10593 | PROMPT_CLEAR, PR_PREEN_OK }, | 10601 | PROMPT_CLEAR, PR_PREEN_OK }, |
10594 | 10602 | ||
10595 | /* Journal has bad mode */ | 10603 | /* Journal has bad mode */ |
@@ -10599,7 +10607,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
10599 | 10607 | ||
10600 | /* Deal with inodes that were part of orphan linked list */ | 10608 | /* Deal with inodes that were part of orphan linked list */ |
10601 | { PR_1_LOW_DTIME, | 10609 | { PR_1_LOW_DTIME, |
10602 | N_("@i %i was part of the orphaned @i list. "), | 10610 | N_("@i %i was part of the @o @i list. "), |
10603 | PROMPT_FIX, PR_LATCH_LOW_DTIME, 0 }, | 10611 | PROMPT_FIX, PR_LATCH_LOW_DTIME, 0 }, |
10604 | 10612 | ||
10605 | /* Deal with inodes that were part of corrupted orphan linked | 10613 | /* Deal with inodes that were part of corrupted orphan linked |
@@ -10610,7 +10618,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
10610 | 10618 | ||
10611 | /* Error allocating refcount structure */ | 10619 | /* Error allocating refcount structure */ |
10612 | { PR_1_ALLOCATE_REFCOUNT, | 10620 | { PR_1_ALLOCATE_REFCOUNT, |
10613 | "@A refcount structure (%N): %m\n", | 10621 | N_("@A refcount structure (%N): %m\n"), |
10614 | PROMPT_NONE, PR_FATAL }, | 10622 | PROMPT_NONE, PR_FATAL }, |
10615 | 10623 | ||
10616 | /* Error reading extended attribute block */ | 10624 | /* Error reading extended attribute block */ |
@@ -10630,7 +10638,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
10630 | 10638 | ||
10631 | /* Extended attribute reference count incorrect */ | 10639 | /* Extended attribute reference count incorrect */ |
10632 | { PR_1_EXTATTR_REFCOUNT, | 10640 | { PR_1_EXTATTR_REFCOUNT, |
10633 | N_("@a @b %b has reference count %B, should be %N. "), | 10641 | N_("@a @b %b has reference count %B, @s %N. "), |
10634 | PROMPT_FIX, 0 }, | 10642 | PROMPT_FIX, 0 }, |
10635 | 10643 | ||
10636 | /* Error writing Extended Attribute block while fixing refcount */ | 10644 | /* Error writing Extended Attribute block while fixing refcount */ |
@@ -10640,12 +10648,12 @@ static const struct e2fsck_problem problem_table[] = { | |||
10640 | 10648 | ||
10641 | /* Multiple EA blocks not supported */ | 10649 | /* Multiple EA blocks not supported */ |
10642 | { PR_1_EA_MULTI_BLOCK, | 10650 | { PR_1_EA_MULTI_BLOCK, |
10643 | N_("@a @b %b has h_blocks > 1. "), | 10651 | N_("@a @b %b has h_@bs > 1. "), |
10644 | PROMPT_CLEAR, 0}, | 10652 | PROMPT_CLEAR, 0}, |
10645 | 10653 | ||
10646 | /* Error allocating EA region allocation structure */ | 10654 | /* Error allocating EA region allocation structure */ |
10647 | { PR_1_EA_ALLOC_REGION, | 10655 | { PR_1_EA_ALLOC_REGION, |
10648 | N_("Error allocating @a @b %b. "), | 10656 | N_("@A @a @b %b. "), |
10649 | PROMPT_ABORT, 0}, | 10657 | PROMPT_ABORT, 0}, |
10650 | 10658 | ||
10651 | /* Error EA allocation collision */ | 10659 | /* Error EA allocation collision */ |
@@ -10655,12 +10663,12 @@ static const struct e2fsck_problem problem_table[] = { | |||
10655 | 10663 | ||
10656 | /* Bad extended attribute name */ | 10664 | /* Bad extended attribute name */ |
10657 | { PR_1_EA_BAD_NAME, | 10665 | { PR_1_EA_BAD_NAME, |
10658 | N_("@a @b %b is corrupt (invalid name). "), | 10666 | N_("@a @b %b is corrupt (@n name). "), |
10659 | PROMPT_CLEAR, 0}, | 10667 | PROMPT_CLEAR, 0}, |
10660 | 10668 | ||
10661 | /* Bad extended attribute value */ | 10669 | /* Bad extended attribute value */ |
10662 | { PR_1_EA_BAD_VALUE, | 10670 | { PR_1_EA_BAD_VALUE, |
10663 | N_("@a @b %b is corrupt (invalid value). "), | 10671 | N_("@a @b %b is corrupt (@n value). "), |
10664 | PROMPT_CLEAR, 0}, | 10672 | PROMPT_CLEAR, 0}, |
10665 | 10673 | ||
10666 | /* Inode too big (latch question) */ | 10674 | /* Inode too big (latch question) */ |
@@ -10694,7 +10702,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
10694 | 10702 | ||
10695 | /* Invalid root node in HTREE directory */ | 10703 | /* Invalid root node in HTREE directory */ |
10696 | { PR_1_HTREE_BADROOT, | 10704 | { PR_1_HTREE_BADROOT, |
10697 | N_("@h %i has an invalid root node.\n"), | 10705 | N_("@h %i has an @n root node.\n"), |
10698 | PROMPT_CLEAR_HTREE, PR_PREEN_OK }, | 10706 | PROMPT_CLEAR_HTREE, PR_PREEN_OK }, |
10699 | 10707 | ||
10700 | /* Unsupported hash version in HTREE directory */ | 10708 | /* Unsupported hash version in HTREE directory */ |
@@ -10725,45 +10733,45 @@ static const struct e2fsck_problem problem_table[] = { | |||
10725 | 10733 | ||
10726 | /* invalid inode->i_extra_isize */ | 10734 | /* invalid inode->i_extra_isize */ |
10727 | { PR_1_EXTRA_ISIZE, | 10735 | { PR_1_EXTRA_ISIZE, |
10728 | N_("@i %i has a extra size (%IS) which is invalid\n"), | 10736 | N_("@i %i has a extra size (%IS) which is @n\n"), |
10729 | PROMPT_FIX, PR_PREEN_OK }, | 10737 | PROMPT_FIX, PR_PREEN_OK }, |
10730 | 10738 | ||
10731 | /* invalid ea entry->e_name_len */ | 10739 | /* invalid ea entry->e_name_len */ |
10732 | { PR_1_ATTR_NAME_LEN, | 10740 | { PR_1_ATTR_NAME_LEN, |
10733 | N_("@a in @i %i has a namelen (%N) which is invalid\n"), | 10741 | N_("@a in @i %i has a namelen (%N) which is @n\n"), |
10734 | PROMPT_CLEAR, PR_PREEN_OK }, | 10742 | PROMPT_CLEAR, PR_PREEN_OK }, |
10735 | 10743 | ||
10736 | /* invalid ea entry->e_value_size */ | 10744 | /* invalid ea entry->e_value_size */ |
10737 | { PR_1_ATTR_VALUE_SIZE, | 10745 | { PR_1_ATTR_VALUE_SIZE, |
10738 | N_("@a in @i %i has a value size (%N) which is invalid\n"), | 10746 | N_("@a in @i %i has a value size (%N) which is @n\n"), |
10739 | PROMPT_CLEAR, PR_PREEN_OK }, | 10747 | PROMPT_CLEAR, PR_PREEN_OK }, |
10740 | 10748 | ||
10741 | /* invalid ea entry->e_value_offs */ | 10749 | /* invalid ea entry->e_value_offs */ |
10742 | { PR_1_ATTR_VALUE_OFFSET, | 10750 | { PR_1_ATTR_VALUE_OFFSET, |
10743 | N_("@a in @i %i has a value offset (%N) which is invalid\n"), | 10751 | N_("@a in @i %i has a value offset (%N) which is @n\n"), |
10744 | PROMPT_CLEAR, PR_PREEN_OK }, | 10752 | PROMPT_CLEAR, PR_PREEN_OK }, |
10745 | 10753 | ||
10746 | /* invalid ea entry->e_value_block */ | 10754 | /* invalid ea entry->e_value_block */ |
10747 | { PR_1_ATTR_VALUE_BLOCK, | 10755 | { PR_1_ATTR_VALUE_BLOCK, |
10748 | N_("@a in @i %i has a value block (%N) which is invalid (must be 0)\n"), | 10756 | N_("@a in @i %i has a value @b (%N) which is @n (must be 0)\n"), |
10749 | PROMPT_CLEAR, PR_PREEN_OK }, | 10757 | PROMPT_CLEAR, PR_PREEN_OK }, |
10750 | 10758 | ||
10751 | /* invalid ea entry->e_hash */ | 10759 | /* invalid ea entry->e_hash */ |
10752 | { PR_1_ATTR_HASH, | 10760 | { PR_1_ATTR_HASH, |
10753 | N_("@a in @i %i has a hash (%N) which is invalid (must be 0)\n"), | 10761 | N_("@a in @i %i has a hash (%N) which is @n (must be 0)\n"), |
10754 | PROMPT_CLEAR, PR_PREEN_OK }, | 10762 | PROMPT_CLEAR, PR_PREEN_OK }, |
10755 | 10763 | ||
10756 | /* Pass 1b errors */ | 10764 | /* Pass 1b errors */ |
10757 | 10765 | ||
10758 | /* Pass 1B: Rescan for duplicate/bad blocks */ | 10766 | /* Pass 1B: Rescan for duplicate/bad blocks */ |
10759 | { PR_1B_PASS_HEADER, | 10767 | { PR_1B_PASS_HEADER, |
10760 | N_("Duplicate @bs found... invoking duplicate @b passes.\n" | 10768 | N_("\nRunning additional passes to resolve @bs claimed by more than one @i...\n" |
10761 | "Pass 1B: Rescan for duplicate/bad @bs\n"), | 10769 | "Pass 1B: Rescanning for @m @bs\n"), |
10762 | PROMPT_NONE, 0 }, | 10770 | PROMPT_NONE, 0 }, |
10763 | 10771 | ||
10764 | /* Duplicate/bad block(s) header */ | 10772 | /* Duplicate/bad block(s) header */ |
10765 | { PR_1B_DUP_BLOCK_HEADER, | 10773 | { PR_1B_DUP_BLOCK_HEADER, |
10766 | N_("Duplicate/bad @b(s) in @i %i:"), | 10774 | N_("@m @b(s) in @i %i:"), |
10767 | PROMPT_NONE, 0 }, | 10775 | PROMPT_NONE, 0 }, |
10768 | 10776 | ||
10769 | /* Duplicate/bad block(s) in inode */ | 10777 | /* Duplicate/bad block(s) in inode */ |
@@ -10783,7 +10791,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
10783 | 10791 | ||
10784 | /* Error allocating inode bitmap */ | 10792 | /* Error allocating inode bitmap */ |
10785 | { PR_1B_ALLOCATE_IBITMAP_ERROR, | 10793 | { PR_1B_ALLOCATE_IBITMAP_ERROR, |
10786 | N_("@A @i @B (inode_dup_map): %m\n"), | 10794 | N_("@A @i @B (@i_dup_map): %m\n"), |
10787 | PROMPT_NONE, PR_FATAL }, | 10795 | PROMPT_NONE, PR_FATAL }, |
10788 | 10796 | ||
10789 | /* Error while iterating over blocks */ | 10797 | /* Error while iterating over blocks */ |
@@ -10793,25 +10801,25 @@ static const struct e2fsck_problem problem_table[] = { | |||
10793 | 10801 | ||
10794 | /* Error adjusting EA refcount */ | 10802 | /* Error adjusting EA refcount */ |
10795 | { PR_1B_ADJ_EA_REFCOUNT, | 10803 | { PR_1B_ADJ_EA_REFCOUNT, |
10796 | N_("Error addjusting refcount for @a @b %b (@i %i): %m\n"), | 10804 | N_("Error adjusting refcount for @a @b %b (@i %i): %m\n"), |
10797 | PROMPT_NONE, 0 }, | 10805 | PROMPT_NONE, 0 }, |
10798 | 10806 | ||
10799 | 10807 | ||
10800 | /* Pass 1C: Scan directories for inodes with dup blocks. */ | 10808 | /* Pass 1C: Scan directories for inodes with multiply-claimed blocks. */ |
10801 | { PR_1C_PASS_HEADER, | 10809 | { PR_1C_PASS_HEADER, |
10802 | N_("Pass 1C: Scan directories for @is with dup @bs.\n"), | 10810 | N_("Pass 1C: Scanning directories for @is with @m @bs.\n"), |
10803 | PROMPT_NONE, 0 }, | 10811 | PROMPT_NONE, 0 }, |
10804 | 10812 | ||
10805 | 10813 | ||
10806 | /* Pass 1D: Reconciling duplicate blocks */ | 10814 | /* Pass 1D: Reconciling multiply-claimed blocks */ |
10807 | { PR_1D_PASS_HEADER, | 10815 | { PR_1D_PASS_HEADER, |
10808 | N_("Pass 1D: Reconciling duplicate @bs\n"), | 10816 | N_("Pass 1D: Reconciling @m @bs\n"), |
10809 | PROMPT_NONE, 0 }, | 10817 | PROMPT_NONE, 0 }, |
10810 | 10818 | ||
10811 | /* File has duplicate blocks */ | 10819 | /* File has duplicate blocks */ |
10812 | { PR_1D_DUP_FILE, | 10820 | { PR_1D_DUP_FILE, |
10813 | N_("File %Q (@i #%i, mod time %IM) \n" | 10821 | N_("File %Q (@i #%i, mod time %IM) \n" |
10814 | " has %B duplicate @b(s), shared with %N file(s):\n"), | 10822 | " has %B @m @b(s), shared with %N file(s):\n"), |
10815 | PROMPT_NONE, 0 }, | 10823 | PROMPT_NONE, 0 }, |
10816 | 10824 | ||
10817 | /* List of files sharing duplicate blocks */ | 10825 | /* List of files sharing duplicate blocks */ |
@@ -10826,12 +10834,12 @@ static const struct e2fsck_problem problem_table[] = { | |||
10826 | 10834 | ||
10827 | /* Report of how many duplicate/bad inodes */ | 10835 | /* Report of how many duplicate/bad inodes */ |
10828 | { PR_1D_NUM_DUP_INODES, | 10836 | { PR_1D_NUM_DUP_INODES, |
10829 | N_("(There are %N @is containing duplicate/bad @bs.)\n\n"), | 10837 | N_("(There are %N @is containing @m @bs.)\n\n"), |
10830 | PROMPT_NONE, 0 }, | 10838 | PROMPT_NONE, 0 }, |
10831 | 10839 | ||
10832 | /* Duplicated blocks already reassigned or cloned. */ | 10840 | /* Duplicated blocks already reassigned or cloned. */ |
10833 | { PR_1D_DUP_BLOCKS_DEALT, | 10841 | { PR_1D_DUP_BLOCKS_DEALT, |
10834 | N_("Duplicated @bs already reassigned or cloned.\n\n"), | 10842 | N_("@m @bs already reassigned or cloned.\n\n"), |
10835 | PROMPT_NONE, 0 }, | 10843 | PROMPT_NONE, 0 }, |
10836 | 10844 | ||
10837 | /* Clone duplicate/bad blocks? */ | 10845 | /* Clone duplicate/bad blocks? */ |
@@ -10855,12 +10863,12 @@ static const struct e2fsck_problem problem_table[] = { | |||
10855 | 10863 | ||
10856 | /* Bad inode number for '.' */ | 10864 | /* Bad inode number for '.' */ |
10857 | { PR_2_BAD_INODE_DOT, | 10865 | { PR_2_BAD_INODE_DOT, |
10858 | N_("Bad @i number for '.' in @d @i %i.\n"), | 10866 | N_("@n @i number for '.' in @d @i %i.\n"), |
10859 | PROMPT_FIX, 0 }, | 10867 | PROMPT_FIX, 0 }, |
10860 | 10868 | ||
10861 | /* Directory entry has bad inode number */ | 10869 | /* Directory entry has bad inode number */ |
10862 | { PR_2_BAD_INO, | 10870 | { PR_2_BAD_INO, |
10863 | N_("@E has bad @i #: %Di.\n"), | 10871 | N_("@E has @n @i #: %Di.\n"), |
10864 | PROMPT_CLEAR, 0 }, | 10872 | PROMPT_CLEAR, 0 }, |
10865 | 10873 | ||
10866 | /* Directory entry has deleted or unused inode */ | 10874 | /* Directory entry has deleted or unused inode */ |
@@ -10905,12 +10913,12 @@ static const struct e2fsck_problem problem_table[] = { | |||
10905 | 10913 | ||
10906 | /* First entry in directory inode doesn't contain '.' */ | 10914 | /* First entry in directory inode doesn't contain '.' */ |
10907 | { PR_2_1ST_NOT_DOT, | 10915 | { PR_2_1ST_NOT_DOT, |
10908 | N_("First @e '%Dn' (inode=%Di) in @d @i %i (%p) @s '.'\n"), | 10916 | N_("First @e '%Dn' (@i=%Di) in @d @i %i (%p) @s '.'\n"), |
10909 | PROMPT_FIX, 0 }, | 10917 | PROMPT_FIX, 0 }, |
10910 | 10918 | ||
10911 | /* Second entry in directory inode doesn't contain '..' */ | 10919 | /* Second entry in directory inode doesn't contain '..' */ |
10912 | { PR_2_2ND_NOT_DOT_DOT, | 10920 | { PR_2_2ND_NOT_DOT_DOT, |
10913 | N_("Second @e '%Dn' (inode=%Di) in @d @i %i @s '..'\n"), | 10921 | N_("Second @e '%Dn' (@i=%Di) in @d @i %i @s '..'\n"), |
10914 | PROMPT_FIX, 0 }, | 10922 | PROMPT_FIX, 0 }, |
10915 | 10923 | ||
10916 | /* i_faddr should be zero */ | 10924 | /* i_faddr should be zero */ |
@@ -10940,7 +10948,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
10940 | 10948 | ||
10941 | /* inode has bad mode */ | 10949 | /* inode has bad mode */ |
10942 | { PR_2_BAD_MODE, | 10950 | { PR_2_BAD_MODE, |
10943 | N_("@i %i (%Q) has a bad mode (%Im).\n"), | 10951 | N_("@i %i (%Q) has @n mode (%Im).\n"), |
10944 | PROMPT_CLEAR, 0 }, | 10952 | PROMPT_CLEAR, 0 }, |
10945 | 10953 | ||
10946 | /* directory corrupted */ | 10954 | /* directory corrupted */ |
@@ -10995,7 +11003,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
10995 | 11003 | ||
10996 | /* Final rec_len is wrong */ | 11004 | /* Final rec_len is wrong */ |
10997 | { PR_2_FINAL_RECLEN, | 11005 | { PR_2_FINAL_RECLEN, |
10998 | N_("@E has rec_len of %Dr, should be %N.\n"), | 11006 | N_("@E has rec_len of %Dr, @s %N.\n"), |
10999 | PROMPT_FIX, 0 }, | 11007 | PROMPT_FIX, 0 }, |
11000 | 11008 | ||
11001 | /* Error allocating icount structure */ | 11009 | /* Error allocating icount structure */ |
@@ -11050,7 +11058,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
11050 | 11058 | ||
11051 | /* Directory filetype incorrect */ | 11059 | /* Directory filetype incorrect */ |
11052 | { PR_2_BAD_FILETYPE, | 11060 | { PR_2_BAD_FILETYPE, |
11053 | N_("@E has an incorrect filetype (was %Dt, should be %N).\n"), | 11061 | N_("@E has an incorrect filetype (was %Dt, @s %N).\n"), |
11054 | PROMPT_FIX, 0 }, | 11062 | PROMPT_FIX, 0 }, |
11055 | 11063 | ||
11056 | /* Directory filetype set on filesystem */ | 11064 | /* Directory filetype set on filesystem */ |
@@ -11060,17 +11068,17 @@ static const struct e2fsck_problem problem_table[] = { | |||
11060 | 11068 | ||
11061 | /* Directory filename is null */ | 11069 | /* Directory filename is null */ |
11062 | { PR_2_NULL_NAME, | 11070 | { PR_2_NULL_NAME, |
11063 | N_("@E has a zero-length name.\n"), | 11071 | N_("@E has a @z name.\n"), |
11064 | PROMPT_CLEAR, 0 }, | 11072 | PROMPT_CLEAR, 0 }, |
11065 | 11073 | ||
11066 | /* Invalid symlink */ | 11074 | /* Invalid symlink */ |
11067 | { PR_2_INVALID_SYMLINK, | 11075 | { PR_2_INVALID_SYMLINK, |
11068 | N_("Symlink %Q (@i #%i) is invalid.\n"), | 11076 | N_("Symlink %Q (@i #%i) is @n.\n"), |
11069 | PROMPT_CLEAR, 0 }, | 11077 | PROMPT_CLEAR, 0 }, |
11070 | 11078 | ||
11071 | /* i_file_acl (extended attribute block) is bad */ | 11079 | /* i_file_acl (extended attribute block) is bad */ |
11072 | { PR_2_FILE_ACL_BAD, | 11080 | { PR_2_FILE_ACL_BAD, |
11073 | N_("@a @b @F invalid (%If).\n"), | 11081 | N_("@a @b @F @n (%If).\n"), |
11074 | PROMPT_CLEAR, 0 }, | 11082 | PROMPT_CLEAR, 0 }, |
11075 | 11083 | ||
11076 | /* Filesystem contains large files, but has no such flag in sb */ | 11084 | /* Filesystem contains large files, but has no such flag in sb */ |
@@ -11100,7 +11108,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
11100 | 11108 | ||
11101 | /* Clear invalid HTREE directory */ | 11109 | /* Clear invalid HTREE directory */ |
11102 | { PR_2_HTREE_CLEAR, | 11110 | { PR_2_HTREE_CLEAR, |
11103 | N_("Invalid @h %d (%q). "), PROMPT_CLEAR, 0 }, | 11111 | N_("@n @h %d (%q). "), PROMPT_CLEAR, 0 }, |
11104 | 11112 | ||
11105 | /* Bad block in htree interior node */ | 11113 | /* Bad block in htree interior node */ |
11106 | { PR_2_HTREE_BADBLK, | 11114 | { PR_2_HTREE_BADBLK, |
@@ -11109,22 +11117,22 @@ static const struct e2fsck_problem problem_table[] = { | |||
11109 | 11117 | ||
11110 | /* Error adjusting EA refcount */ | 11118 | /* Error adjusting EA refcount */ |
11111 | { PR_2_ADJ_EA_REFCOUNT, | 11119 | { PR_2_ADJ_EA_REFCOUNT, |
11112 | N_("Error addjusting refcount for @a @b %b (@i %i): %m\n"), | 11120 | N_("Error adjusting refcount for @a @b %b (@i %i): %m\n"), |
11113 | PROMPT_NONE, PR_FATAL }, | 11121 | PROMPT_NONE, PR_FATAL }, |
11114 | 11122 | ||
11115 | /* Invalid HTREE root node */ | 11123 | /* Invalid HTREE root node */ |
11116 | { PR_2_HTREE_BAD_ROOT, | 11124 | { PR_2_HTREE_BAD_ROOT, |
11117 | N_("@p @h %d: root node is invalid\n"), | 11125 | N_("@p @h %d: root node is @n\n"), |
11118 | PROMPT_CLEAR_HTREE, PR_PREEN_OK }, | 11126 | PROMPT_CLEAR_HTREE, PR_PREEN_OK }, |
11119 | 11127 | ||
11120 | /* Invalid HTREE limit */ | 11128 | /* Invalid HTREE limit */ |
11121 | { PR_2_HTREE_BAD_LIMIT, | 11129 | { PR_2_HTREE_BAD_LIMIT, |
11122 | N_("@p @h %d: node (%B) has bad limit (%N)\n"), | 11130 | N_("@p @h %d: node (%B) has @n limit (%N)\n"), |
11123 | PROMPT_CLEAR_HTREE, PR_PREEN_OK }, | 11131 | PROMPT_CLEAR_HTREE, PR_PREEN_OK }, |
11124 | 11132 | ||
11125 | /* Invalid HTREE count */ | 11133 | /* Invalid HTREE count */ |
11126 | { PR_2_HTREE_BAD_COUNT, | 11134 | { PR_2_HTREE_BAD_COUNT, |
11127 | N_("@p @h %d: node (%B) has bad count (%N)\n"), | 11135 | N_("@p @h %d: node (%B) has @n count (%N)\n"), |
11128 | PROMPT_CLEAR_HTREE, PR_PREEN_OK }, | 11136 | PROMPT_CLEAR_HTREE, PR_PREEN_OK }, |
11129 | 11137 | ||
11130 | /* HTREE interior node has out-of-order hashes in table */ | 11138 | /* HTREE interior node has out-of-order hashes in table */ |
@@ -11132,9 +11140,9 @@ static const struct e2fsck_problem problem_table[] = { | |||
11132 | N_("@p @h %d: node (%B) has an unordered hash table\n"), | 11140 | N_("@p @h %d: node (%B) has an unordered hash table\n"), |
11133 | PROMPT_CLEAR_HTREE, PR_PREEN_OK }, | 11141 | PROMPT_CLEAR_HTREE, PR_PREEN_OK }, |
11134 | 11142 | ||
11135 | /* Node in HTREE directory has bad depth */ | 11143 | /* Node in HTREE directory has invalid depth */ |
11136 | { PR_2_HTREE_BAD_DEPTH, | 11144 | { PR_2_HTREE_BAD_DEPTH, |
11137 | N_("@p @h %d: node (%B) has bad depth\n"), | 11145 | N_("@p @h %d: node (%B) has @n depth\n"), |
11138 | PROMPT_NONE, 0 }, | 11146 | PROMPT_NONE, 0 }, |
11139 | 11147 | ||
11140 | /* Duplicate directory entry found */ | 11148 | /* Duplicate directory entry found */ |
@@ -11236,7 +11244,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
11236 | 11244 | ||
11237 | /* Couldn't fix parent directory -- couldn't find it */ | 11245 | /* Couldn't fix parent directory -- couldn't find it */ |
11238 | { PR_3_FIX_PARENT_NOFIND, | 11246 | { PR_3_FIX_PARENT_NOFIND, |
11239 | N_("Couldn't fix parent of @i %i: Couldn't find parent @d entry\n\n"), | 11247 | N_("Couldn't fix parent of @i %i: Couldn't find parent @d @e\n\n"), |
11240 | PROMPT_NONE, 0 }, | 11248 | PROMPT_NONE, 0 }, |
11241 | 11249 | ||
11242 | /* Error allocating inode bitmap */ | 11250 | /* Error allocating inode bitmap */ |
@@ -11315,12 +11323,12 @@ static const struct e2fsck_problem problem_table[] = { | |||
11315 | 11323 | ||
11316 | /* Unattached zero-length inode */ | 11324 | /* Unattached zero-length inode */ |
11317 | { PR_4_ZERO_LEN_INODE, | 11325 | { PR_4_ZERO_LEN_INODE, |
11318 | "@u @z @i %i. ", | 11326 | N_("@u @z @i %i. "), |
11319 | PROMPT_CLEAR, PR_PREEN_OK|PR_NO_OK }, | 11327 | PROMPT_CLEAR, PR_PREEN_OK|PR_NO_OK }, |
11320 | 11328 | ||
11321 | /* Unattached inode */ | 11329 | /* Unattached inode */ |
11322 | { PR_4_UNATTACHED_INODE, | 11330 | { PR_4_UNATTACHED_INODE, |
11323 | "@u @i %i\n", | 11331 | N_("@u @i %i\n"), |
11324 | PROMPT_CONNECT, 0 }, | 11332 | PROMPT_CONNECT, 0 }, |
11325 | 11333 | ||
11326 | /* Inode ref count wrong */ | 11334 | /* Inode ref count wrong */ |
@@ -11332,7 +11340,7 @@ static const struct e2fsck_problem problem_table[] = { | |||
11332 | N_("WARNING: PROGRAMMING BUG IN E2FSCK!\n" | 11340 | N_("WARNING: PROGRAMMING BUG IN E2FSCK!\n" |
11333 | "\tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n" | 11341 | "\tOR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.\n" |
11334 | "@i_link_info[%i] is %N, @i.i_links_count is %Il. " | 11342 | "@i_link_info[%i] is %N, @i.i_links_count is %Il. " |
11335 | "They should be the same!\n"), | 11343 | "They @s the same!\n"), |
11336 | PROMPT_NONE, 0 }, | 11344 | PROMPT_NONE, 0 }, |
11337 | 11345 | ||
11338 | /* Pass 5 errors */ | 11346 | /* Pass 5 errors */ |
@@ -11430,12 +11438,12 @@ static const struct e2fsck_problem problem_table[] = { | |||
11430 | 11438 | ||
11431 | /* Error copying in replacement inode bitmap */ | 11439 | /* Error copying in replacement inode bitmap */ |
11432 | { PR_5_COPY_IBITMAP_ERROR, | 11440 | { PR_5_COPY_IBITMAP_ERROR, |
11433 | "Error copying in replacement @i @B: %m\n", | 11441 | N_("Error copying in replacement @i @B: %m\n"), |
11434 | PROMPT_NONE, PR_FATAL }, | 11442 | PROMPT_NONE, PR_FATAL }, |
11435 | 11443 | ||
11436 | /* Error copying in replacement block bitmap */ | 11444 | /* Error copying in replacement block bitmap */ |
11437 | { PR_5_COPY_BBITMAP_ERROR, | 11445 | { PR_5_COPY_BBITMAP_ERROR, |
11438 | "Error copying in replacement @b @B: %m\n", | 11446 | N_("Error copying in replacement @b @B: %m\n"), |
11439 | PROMPT_NONE, PR_FATAL }, | 11447 | PROMPT_NONE, PR_FATAL }, |
11440 | 11448 | ||
11441 | /* Block range not used, but marked in bitmap */ | 11449 | /* Block range not used, but marked in bitmap */ |
@@ -13523,7 +13531,7 @@ static void check_resize_inode(e2fsck_t ctx) | |||
13523 | } | 13531 | } |
13524 | } | 13532 | } |
13525 | 13533 | ||
13526 | /* Read the resizde inode */ | 13534 | /* Read the resize inode */ |
13527 | pctx.ino = EXT2_RESIZE_INO; | 13535 | pctx.ino = EXT2_RESIZE_INO; |
13528 | retval = ext2fs_read_inode(fs, EXT2_RESIZE_INO, &inode); | 13536 | retval = ext2fs_read_inode(fs, EXT2_RESIZE_INO, &inode); |
13529 | if (retval) { | 13537 | if (retval) { |
@@ -14641,7 +14649,7 @@ static void usage(e2fsck_t ctx) | |||
14641 | fprintf(stderr, | 14649 | fprintf(stderr, |
14642 | _("Usage: %s [-panyrcdfvstDFSV] [-b superblock] [-B blocksize]\n" | 14650 | _("Usage: %s [-panyrcdfvstDFSV] [-b superblock] [-B blocksize]\n" |
14643 | "\t\t[-I inode_buffer_blocks] [-P process_inode_size]\n" | 14651 | "\t\t[-I inode_buffer_blocks] [-P process_inode_size]\n" |
14644 | "\t\t[-l|-L bad_blocks_file] [-C fd] [-j ext-journal]\n" | 14652 | "\t\t[-l|-L bad_blocks_file] [-C fd] [-j external_journal]\n" |
14645 | "\t\t[-E extended-options] device\n"), | 14653 | "\t\t[-E extended-options] device\n"), |
14646 | ctx->program_name); | 14654 | ctx->program_name); |
14647 | 14655 | ||
@@ -14655,7 +14663,7 @@ static void usage(e2fsck_t ctx) | |||
14655 | " -v Be verbose\n" | 14663 | " -v Be verbose\n" |
14656 | " -b superblock Use alternative superblock\n" | 14664 | " -b superblock Use alternative superblock\n" |
14657 | " -B blocksize Force blocksize when looking for superblock\n" | 14665 | " -B blocksize Force blocksize when looking for superblock\n" |
14658 | " -j external-journal Set location of the external journal\n" | 14666 | " -j external_journal Set location of the external journal\n" |
14659 | " -l bad_blocks_file Add to badblocks list\n" | 14667 | " -l bad_blocks_file Add to badblocks list\n" |
14660 | " -L bad_blocks_file Set badblocks list\n" | 14668 | " -L bad_blocks_file Set badblocks list\n" |
14661 | )); | 14669 | )); |
@@ -15080,16 +15088,19 @@ static void parse_extended_opts(e2fsck_t ctx, const char *opts) | |||
15080 | continue; | 15088 | continue; |
15081 | } | 15089 | } |
15082 | ctx->ext_attr_ver = ea_ver; | 15090 | ctx->ext_attr_ver = ea_ver; |
15083 | } else | 15091 | } else { |
15092 | fprintf(stderr, _("Unknown extended option: %s\n"), | ||
15093 | token); | ||
15084 | extended_usage++; | 15094 | extended_usage++; |
15095 | } | ||
15085 | } | 15096 | } |
15086 | if (extended_usage) { | 15097 | if (extended_usage) { |
15087 | bb_error_msg_and_die( | 15098 | bb_error_msg_and_die( |
15088 | "Extended options are separated by commas, " | 15099 | "Extended options are separated by commas, " |
15089 | "and may take an argument which\n" | 15100 | "and may take an argument which\n" |
15090 | "is set off by an equals ('=') sign. " | 15101 | "is set off by an equals ('=') sign. " |
15091 | "Valid raid options are:\n" | 15102 | "Valid extended options are:\n" |
15092 | "\tea_ver=<ea_version (1 or 2)\n\n"); | 15103 | "\tea_ver=<ea_version (1 or 2)>\n\n"); |
15093 | } | 15104 | } |
15094 | } | 15105 | } |
15095 | 15106 | ||