cluster: STABLE32 - config: Fix typo in schema
by Lon Hohberger
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 7fc46e322b78c59b160d6dade2699eb841353a61
Parent: e66cf5f585812e24f5e82a424d50cc2a4fec039d
Author: Lon Hohberger <lhh(a)redhat.com>
AuthorDate: Mon Jan 30 16:35:52 2012 -0500
Committer: Lon Hohberger <lhh(a)redhat.com>
CommitterDate: Mon Jan 30 16:35:52 2012 -0500
config: Fix typo in schema
Resolves: rhbz#785866
Signed-off-by: Lon Hohberger <lhh(a)redhat.com>
---
config/tools/xml/cluster.rng.in.head | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/config/tools/xml/cluster.rng.in.head b/config/tools/xml/cluster.rng.in.head
index a669c98..c2fed3e 100644
--- a/config/tools/xml/cluster.rng.in.head
+++ b/config/tools/xml/cluster.rng.in.head
@@ -20,7 +20,7 @@ cluster
- rm
- clvmd
-Element defnitions:
+Element definitions:
- Resource
- Fence
12 years, 2 months
gfs2-utils: master - i18n: Update gfs2-utils.pot file
by cmaiolino
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 879e3d4e38d1c8ed238e1a8cbb14830733e56193
Parent: 6befade37357b6fec5093b1527e113dff016028b
Author: Carlos Maiolino <cmaiolino(a)redhat.com>
AuthorDate: Mon Jan 30 11:27:21 2012 -0200
Committer: Carlos Maiolino <cmaiolino(a)redhat.com>
CommitterDate: Mon Jan 30 11:27:21 2012 -0200
i18n: Update gfs2-utils.pot file
This patch will just update the current .pot file for an up2date version.
---
po/gfs2-utils.pot | 2891 ++++++++++++++++++++++++++++++++---------------------
1 files changed, 1748 insertions(+), 1143 deletions(-)
diff --git a/po/gfs2-utils.pot b/po/gfs2-utils.pot
index 246adee..3c514d8 100644
--- a/po/gfs2-utils.pot
+++ b/po/gfs2-utils.pot
@@ -1,14 +1,14 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# Copyright (C) YEAR Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-03 14:44+0000\n"
+"Project-Id-Version: gfs2-utils master\n"
+"Report-Msgid-Bugs-To: linux-cluster(a)redhat.com\n"
+"POT-Creation-Date: 2012-01-30 11:26-0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL(a)li.org>\n"
@@ -17,8 +17,8 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: gfs2/fsck/eattr.c:42 gfs2/fsck/pass1b.c:305 gfs2/fsck/pass1.c:808
-#: gfs2/fsck/pass1c.c:197
+#: gfs2/fsck/eattr.c:42 gfs2/fsck/pass1b.c:316 gfs2/fsck/pass1.c:966
+#: gfs2/fsck/pass2.c:197
#, c-format
msgid ""
" Pointers Required: %d\n"
@@ -30,177 +30,172 @@ msgstr ""
msgid "Journal replay writing metadata block #%lld (0x%llx) for journal+0x%x\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:179
+#: gfs2/fsck/fs_recovery.c:131 gfs2/fsck/fs_recovery.c:243
+msgid "Out of memory when replaying journals.\n"
+msgstr ""
+
+#: gfs2/fsck/fs_recovery.c:183
#, c-format
msgid ""
"Journal replay processing revoke for block #%lld (0x%llx) for journal+0x%x\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:233
+#: gfs2/fsck/fs_recovery.c:237
#, c-format
msgid "Journal replay writing data block #%lld (0x%llx) for journal+0x%x\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:381
+#: gfs2/fsck/fs_recovery.c:390
#, c-format
msgid "Journal block %u (0x%x): sequence no. 0x%llx out of order.\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:383
+#: gfs2/fsck/fs_recovery.c:392
#, c-format
msgid "Low: 0x%llx, High: 0x%llx, Prev: 0x%llx\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:390
+#: gfs2/fsck/fs_recovery.c:399
#, c-format
msgid "Renumbering it as 0x%llx\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:444
+#: gfs2/fsck/fs_recovery.c:453
#, c-format
msgid "jid=%u: Looking at journal...\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:450
+#: gfs2/fsck/fs_recovery.c:459
#, c-format
-msgid ""
-"Journal #%d (\"journal%d\") is corrupt.\n"
-"Not fixing it due to the -n option.\n"
+msgid "Journal #%d (\"journal%d\") is corrupt\n"
+msgstr ""
+
+#: gfs2/fsck/fs_recovery.c:460
+msgid "Not fixing it due to the -n option.\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:456
+#: gfs2/fsck/fs_recovery.c:464
#, c-format
msgid "Journal #%d (\"journal%d\") is corrupt.\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:458
+#: gfs2/fsck/fs_recovery.c:466
msgid ""
"I'm not fixing it because it may be unsafe:\n"
"Locking protocol is not lock_nolock and the -a or -p option was specified.\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:461 gfs2/fsck/fs_recovery.c:505
+#: gfs2/fsck/fs_recovery.c:469 gfs2/fsck/fs_recovery.c:512
msgid ""
"Please make sure no node has the file system mounted then rerun fsck.gfs2 "
"manually without -a or -p.\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:466
+#: gfs2/fsck/fs_recovery.c:474
#, c-format
msgid ""
"\n"
"Journal #%d (\"journal%d\") is corrupt. Okay to repair it? (y/n)"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:469
+#: gfs2/fsck/fs_recovery.c:477
#, c-format
msgid "jid=%u: The journal was not repaired.\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:473
+#: gfs2/fsck/fs_recovery.c:481
#, c-format
msgid "jid=%u: Repairing journal...\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:476
-#, c-format
-msgid "jid=%u: Unable to repair the bad journal.\n"
-msgstr ""
-
-#: gfs2/fsck/fs_recovery.c:482
+#: gfs2/fsck/fs_recovery.c:484 gfs2/fsck/fs_recovery.c:490
#, c-format
msgid "jid=%u: Unable to fix the bad journal.\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:486
+#: gfs2/fsck/fs_recovery.c:494
#, c-format
msgid "jid=%u: The journal was successfully fixed.\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:490
+#: gfs2/fsck/fs_recovery.c:498
#, c-format
msgid "jid=%u: Journal is clean.\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:495
+#: gfs2/fsck/fs_recovery.c:503 gfs2/fsck/fs_recovery.c:508
#, c-format
-msgid ""
-"Journal #%d (\"journal%d\") is dirty; not replaying due to the -n option.\n"
+msgid "Journal #%d (\"journal%d\") is dirty\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:501
-#, c-format
-msgid "Journal #%d (\"journal%d\") is dirty.\n"
+#: gfs2/fsck/fs_recovery.c:504
+msgid "not replaying due to the -n option.\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:502
+#: gfs2/fsck/fs_recovery.c:509
msgid ""
"I'm not replaying it because it may be unsafe:\n"
"Locking protocol is not lock_nolock and the -a or -p option was specified.\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:511
+#: gfs2/fsck/fs_recovery.c:518
#, c-format
msgid ""
"\n"
"Journal #%d (\"journal%d\") is dirty. Okay to replay it? (y/n)"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:515
+#: gfs2/fsck/fs_recovery.c:522
#, c-format
msgid "jid=%u: Replaying journal...\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:527
+#: gfs2/fsck/fs_recovery.c:534
#, c-format
msgid "jid=%u: Found %u revoke tags\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:532
+#: gfs2/fsck/fs_recovery.c:539
#, c-format
msgid "jid=%u: Replayed %u of %u journaled data blocks\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:534
+#: gfs2/fsck/fs_recovery.c:541
#, c-format
msgid "jid=%u: Replayed %u of %u metadata blocks\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:541
+#: gfs2/fsck/fs_recovery.c:548
#, c-format
msgid "jid=%u: Done\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:544
+#: gfs2/fsck/fs_recovery.c:551
#, c-format
msgid "jid=%u: Failed\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:546
+#: gfs2/fsck/fs_recovery.c:553
msgid "Do you want to clear the journal instead? (y/n)"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:551
+#: gfs2/fsck/fs_recovery.c:558
#, c-format
msgid "jid=%u: journal not cleared.\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:582 gfs2/fsck/initialize.c:441
-msgid "Unable to read in jindex inode.\n"
-msgstr ""
-
-#: gfs2/fsck/fs_recovery.c:588
+#: gfs2/fsck/fs_recovery.c:587
#, c-format
msgid ""
"File system journal \"journal%d\" is missing: pass1 will try to recreate "
"it.\n"
msgstr ""
-#: gfs2/fsck/fs_recovery.c:608
+#: gfs2/fsck/fs_recovery.c:607
msgid "Recovering journals (this may take a while)\n"
msgstr ""
-#: gfs2/fsck/initialize.c:111
+#: gfs2/fsck/initialize.c:112
msgid "Freeing buffers.\n"
msgstr ""
@@ -208,970 +203,1060 @@ msgstr ""
msgid "Setting block ranges...\n"
msgstr ""
-#: gfs2/fsck/initialize.c:156
+#: gfs2/fsck/initialize.c:157
msgid "This file system is too big for this computer to handle.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:157
+#: gfs2/fsck/initialize.c:158
#, c-format
msgid "Last fs block = 0x%llx, but sizeof(unsigned long) is %zu bytes.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:167
+#: gfs2/fsck/initialize.c:168
#, c-format
msgid "Can't seek to last block in file system: %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/initialize.c:176
+#: gfs2/fsck/initialize.c:177
#, c-format
msgid ""
"Can't read last block in file system (error %u), last_fs_block: %llu (0x"
"%llx)\n"
msgstr ""
-#: gfs2/fsck/initialize.c:237
-msgid "Okay to reclaim unlinked inodes? (y/n)"
+#: gfs2/fsck/initialize.c:244
+#, c-format
+msgid "Okay to reclaim unlinked inodes in resource group %lld (0x%llx)? (y/n)"
msgstr ""
-#: gfs2/fsck/initialize.c:254
+#: gfs2/fsck/initialize.c:267
#, c-format
msgid ""
"Error: resource group %lld (0x%llx): free space (%d) does not match bitmap "
"(%d)\n"
msgstr ""
-#: gfs2/fsck/initialize.c:260
+#: gfs2/fsck/initialize.c:273 gfs2/fsck/initialize.c:295
#, c-format
msgid "(%d blocks were reclaimed)\n"
msgstr ""
-#: gfs2/fsck/initialize.c:262
+#: gfs2/fsck/initialize.c:275
msgid "Fix the rgrp free blocks count? (y/n)"
msgstr ""
-#: gfs2/fsck/initialize.c:266
+#: gfs2/fsck/initialize.c:283 gfs2/fsck/initialize.c:301
msgid "The rgrp was fixed.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:268
+#: gfs2/fsck/initialize.c:285 gfs2/fsck/initialize.c:303
msgid "The rgrp was not fixed.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:293
+#: gfs2/fsck/initialize.c:289
+#, c-format
+msgid ""
+"Error: resource group %lld (0x%llx): free meta (%d) does not match bitmap "
+"(%d)\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:297
+msgid "Fix the rgrp free meta blocks count? (y/n)"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:328
msgid "Checking the integrity of all resource groups.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:309
+#: gfs2/fsck/initialize.c:345
#, c-format
msgid "RGs: Consistent: %d Inconsistent: %d Fixed: %d Total: %d\n"
msgstr ""
-#: gfs2/fsck/initialize.c:323
+#: gfs2/fsck/initialize.c:360
msgid "The system master directory seems to be destroyed.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:324
+#: gfs2/fsck/initialize.c:361
msgid "Okay to rebuild it? (y/n)"
msgstr ""
-#: gfs2/fsck/initialize.c:325
+#: gfs2/fsck/initialize.c:362
msgid "System master not rebuilt; aborting.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:328
+#: gfs2/fsck/initialize.c:365
msgid "Trying to rebuild the master directory.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:391
-msgid "Master directory rebuilt.\n"
+#: gfs2/fsck/initialize.c:378
+#, c-format
+msgid "Error %d adding jindex directory\n"
msgstr ""
-#: gfs2/fsck/initialize.c:414
-msgid "Initializing special inodes...\n"
+#: gfs2/fsck/initialize.c:385
+#, c-format
+msgid "Error %d building jindex\n"
msgstr ""
-#: gfs2/fsck/initialize.c:421
-msgid "The gfs2 system rindex inode is missing. Okay to rebuild it? (y/n) "
+#: gfs2/fsck/initialize.c:396
+#, c-format
+msgid "Error %d adding per_node directory\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:404
+#, c-format
+msgid "Error %d building per_node directory\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:416
+#, c-format
+msgid "Error %d adding inum inode\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:422
+#, c-format
+msgid "Error %d building inum inode\n"
msgstr ""
#: gfs2/fsck/initialize.c:434
-msgid "The gfs2 system jindex inode is missing. Okay to rebuild it? (y/n) "
+#, c-format
+msgid "Error %d adding statfs inode\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:440
+#, c-format
+msgid "Error %d building statfs inode\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:452
+#, c-format
+msgid "Error %d adding rindex inode\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:458
+#, c-format
+msgid "Error %d building rindex inode\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:469
+#, c-format
+msgid "Error %d adding quota inode\n"
msgstr ""
-#: gfs2/fsck/initialize.c:448
+#: gfs2/fsck/initialize.c:475
+#, c-format
+msgid "Error %d building quota inode\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:480
+msgid "Master directory rebuilt.\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:509
+msgid ""
+"The gfs2 system per_node directory inode is missing, so we might not be \n"
+"able to rebuild missing journals this run.\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:515
+msgid ""
+"The gfs2 system per_node directory inode is missing. Okay to rebuild it? (y/"
+"n) "
+msgstr ""
+
+#: gfs2/fsck/initialize.c:521
+#, c-format
+msgid "Error %d rebuilding per_node directory\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:528
+msgid "Unable to rebuild per_node; aborting.\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:542
+msgid "Checking if all rgrp and rindex values are good"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:543
+msgid "Checking if rindex values may be easily repaired"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:544
+msgid "Calculating where the rgrps should be if evenly spaced"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:545
+msgid "Trying to rebuild rindex assuming evenly spaced rgrps"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:546
+msgid "Trying to rebuild rindex assuming unevenly spaced rgrps"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:549
+msgid "Some damage was found; we need to take remedial measures"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:550
+msgid "rindex is unevenly spaced: either gfs1-style or corrupt"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:551
+msgid "rindex calculations don't match: uneven rgrp boundaries"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:552
+msgid "Too many rgrp misses: rgrps must be unevenly spaced"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:553
+msgid "Too much damage found: we cannot rebuild this rindex"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:558
msgid "Validating Resource Group index.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:450
+#: gfs2/fsck/initialize.c:562
#, c-format
-msgid "Level %d RG check.\n"
+msgid "Level %d rgrp check: %s.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:453
+#: gfs2/fsck/initialize.c:566
#, c-format
msgid "(level %d passed)\n"
msgstr ""
-#: gfs2/fsck/initialize.c:457
+#: gfs2/fsck/initialize.c:570
+#, c-format
+msgid "(level %d failed: %s)\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:573
#, c-format
-msgid "(level %d failed)\n"
+msgid "(level %d failed at block %lld (0x%llx): %s)\n"
msgstr ""
-#: gfs2/fsck/initialize.c:460
-msgid "RG recovery impossible; I can't fix this file system.\n"
+#: gfs2/fsck/initialize.c:583
+msgid "Resource Group recovery impossible; I can't fix this file system.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:463
+#: gfs2/fsck/initialize.c:587
#, c-format
msgid "%u resource groups found.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:473
+#: gfs2/fsck/initialize.c:610
+msgid "Initializing special inodes...\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:626
msgid "The gfs2 system inum inode is missing. Okay to rebuild it? (y/n) "
msgstr ""
-#: gfs2/fsck/initialize.c:484
+#: gfs2/fsck/initialize.c:628
+msgid "fsck.gfs2 cannot continue without a valid inum file; aborting.\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:634
+#, c-format
+msgid "Error %d rebuilding inum inode\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:650
+#, c-format
+msgid "Error %d reading system inum inode. Aborting.\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:663
msgid "The gfs2 system statfs inode is missing. Okay to rebuild it? (y/n) "
msgstr ""
-#: gfs2/fsck/initialize.c:488
+#: gfs2/fsck/initialize.c:665 gfs2/fsck/initialize.c:677
msgid "fsck.gfs2 cannot continue without a valid statfs file; aborting.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:502
+#: gfs2/fsck/initialize.c:671
+#, c-format
+msgid "Error %d rebuilding statfs inode\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:676
+msgid "Rebuild of statfs system file failed."
+msgstr ""
+
+#: gfs2/fsck/initialize.c:689
+#, c-format
+msgid "Error %d reading statfs file. Aborting.\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:705
msgid "The gfs2 system quota inode is missing. Okay to rebuild it? (y/n) "
msgstr ""
-#: gfs2/fsck/initialize.c:509
-msgid ""
-"The gfs2 system per_node directory inode is missing. Okay to rebuild it? (y/"
-"n) "
+#: gfs2/fsck/initialize.c:713
+#, c-format
+msgid "Error %d rebuilding quota inode\n"
msgstr ""
-#: gfs2/fsck/initialize.c:519
+#: gfs2/fsck/initialize.c:733
msgid "Unable to determine the boundaries of the file system.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:526
+#: gfs2/fsck/initialize.c:740
msgid ""
"This system doesn't have enough memory and swap space to fsck this file "
"system.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:527
+#: gfs2/fsck/initialize.c:741
#, c-format
msgid "Additional memory needed is approximately: %lluMB\n"
msgstr ""
-#: gfs2/fsck/initialize.c:529
+#: gfs2/fsck/initialize.c:743
msgid ""
"Please increase your swap space by that amount and run gfs2_fsck again.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:551
+#: gfs2/fsck/initialize.c:765
msgid "Lock protocol determined to be: lock_nolock\n"
msgstr ""
-#: gfs2/fsck/initialize.c:552
+#: gfs2/fsck/initialize.c:766
msgid "Stand-alone file system: No need for a lock table.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:557
+#: gfs2/fsck/initialize.c:771
msgid "Lock protocol assumed to be: "
msgstr ""
-#: gfs2/fsck/initialize.c:570
+#: gfs2/fsck/initialize.c:784
msgid "Error: Unable to determine cluster name from /etc/cluster.conf\n"
msgstr ""
-#: gfs2/fsck/initialize.c:582
+#: gfs2/fsck/initialize.c:796
#, c-format
msgid "Lock table determined to be: %s\n"
msgstr ""
-#: gfs2/fsck/initialize.c:621
+#: gfs2/fsck/initialize.c:835
#, c-format
msgid "Found system master directory at: 0x%llx.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:630
+#: gfs2/fsck/initialize.c:846
#, c-format
msgid "Found system jindex file at: 0x%llx\n"
msgstr ""
-#: gfs2/fsck/initialize.c:642
+#: gfs2/fsck/initialize.c:860 gfs2/fsck/initialize.c:1174
#, c-format
msgid "Found system master directory at: 0x%llx\n"
msgstr ""
-#: gfs2/fsck/initialize.c:653
+#: gfs2/fsck/initialize.c:872
#, c-format
msgid "Found system per_node directory at: 0x%llx\n"
msgstr ""
-#: gfs2/fsck/initialize.c:660
+#: gfs2/fsck/initialize.c:879
#, c-format
msgid "From per_node's '..' I backtracked the master directory to: 0x%llx\n"
msgstr ""
-#: gfs2/fsck/initialize.c:666
+#: gfs2/fsck/initialize.c:885
#, c-format
msgid "Unknown system directory at block 0x%llx\n"
msgstr ""
-#: gfs2/fsck/initialize.c:673
+#: gfs2/fsck/initialize.c:892
#, c-format
msgid "Found system inum file at: 0x%llx\n"
msgstr ""
-#: gfs2/fsck/initialize.c:679
+#: gfs2/fsck/initialize.c:898
#, c-format
msgid "Found system statfs file at: 0x%llx\n"
msgstr ""
-#: gfs2/fsck/initialize.c:685
+#: gfs2/fsck/initialize.c:904
#, c-format
msgid "Found system rindex file at: 0x%llx\n"
msgstr ""
-#: gfs2/fsck/initialize.c:693
+#: gfs2/fsck/initialize.c:912
#, c-format
msgid "Found system quota file at: 0x%llx\n"
msgstr ""
-#: gfs2/fsck/initialize.c:718
+#: gfs2/fsck/initialize.c:941
#, c-format
msgid "Found the root directory at: 0x%llx.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:723
+#: gfs2/fsck/initialize.c:946
#, c-format
msgid ""
"The root dinode should be at block 0x%llx but it seems to be destroyed.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:726
+#: gfs2/fsck/initialize.c:949
#, c-format
msgid "Found a copy of the root directory in a journal at block: 0x%llx.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:729
+#: gfs2/fsck/initialize.c:952
msgid "Do you want to replace the root dinode from the copy? (y/n)"
msgstr ""
-#: gfs2/fsck/initialize.c:731
+#: gfs2/fsck/initialize.c:954
msgid "Damaged root dinode not fixed.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:738
+#: gfs2/fsck/initialize.c:961
msgid "Root directory copied from the journal.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:746
+#: gfs2/fsck/initialize.c:969 gfs2/fsck/initialize.c:1180
#, c-format
-msgid "fsck found the root inode at: 0x%llx\n"
+msgid "Found the root directory at: 0x%llx\n"
msgstr ""
-#: gfs2/fsck/initialize.c:762
+#: gfs2/fsck/initialize.c:985 gfs2/fsck/initialize.c:1146
#, c-format
msgid "Found a possible root at: 0x%llx\n"
msgstr ""
-#: gfs2/fsck/initialize.c:816
+#: gfs2/fsck/initialize.c:1039
#, c-format
msgid "boff:%d bsize2:%d rg:0x%llx, rb:0x%llx\n"
msgstr ""
-#: gfs2/fsck/initialize.c:831
+#: gfs2/fsck/initialize.c:1054
#, c-format
msgid "Block size determined to be: %d\n"
msgstr ""
-#: gfs2/fsck/initialize.c:861
-msgid "Found several gfs (version 1) dinodes; aborting.\n"
-msgstr ""
-
-#: gfs2/fsck/initialize.c:893
+#: gfs2/fsck/initialize.c:1103
msgid ""
"Gathering information to repair the gfs2 superblock. This may take some "
"time.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:900
+#: gfs2/fsck/initialize.c:1110
msgid "Block size not apparent; checking elsewhere.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:913
+#: gfs2/fsck/initialize.c:1122
msgid ""
"Unable to determine the block size; this does not look like a gfs2 file "
"system.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:923
+#: gfs2/fsck/initialize.c:1132
msgid "Unable to locate the system master directory.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:929
+#: gfs2/fsck/initialize.c:1138
msgid "Unable to locate the root directory.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:933
+#: gfs2/fsck/initialize.c:1142
msgid "Can't find any dinodes that might be the root; using master - 1.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:937
-#, c-format
-msgid "Found a root directory candidate at 0x%llx\n"
-msgstr ""
-
-#: gfs2/fsck/initialize.c:945
+#: gfs2/fsck/initialize.c:1154
msgid "The root dinode block is destroyed.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:946
+#: gfs2/fsck/initialize.c:1155
msgid ""
"At this point I recommend reinitializing it.\n"
"Hopefully everything will later be put into lost+found.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:950
+#: gfs2/fsck/initialize.c:1159
msgid "Okay to reinitialize the root dinode? (y/n)"
msgstr ""
-#: gfs2/fsck/initialize.c:952
+#: gfs2/fsck/initialize.c:1161
msgid "The root dinode was not reinitialized; aborting.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:964
+#: gfs2/fsck/initialize.c:1173
msgid "Okay to fix the GFS2 superblock? (y/n)"
msgstr ""
-#: gfs2/fsck/initialize.c:965
-#, c-format
-msgid "Master system directory found at: 0x%llx\n"
-msgstr ""
-
-#: gfs2/fsck/initialize.c:971
-#, c-format
-msgid "Root directory found at: 0x%llx\n"
-msgstr ""
-
-#: gfs2/fsck/initialize.c:980
+#: gfs2/fsck/initialize.c:1189
msgid ""
"GFS2 superblock not fixed; fsck cannot proceed without a valid superblock.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:1000 gfs2/mkfs/main_grow.c:320
+#: gfs2/fsck/initialize.c:1211 gfs2/mkfs/main_grow.c:351
msgid "Initializing lists...\n"
msgstr ""
-#: gfs2/fsck/initialize.c:1010
+#: gfs2/fsck/initialize.c:1221
msgid "GFS superblock is larger than the blocksize!\n"
msgstr ""
-#: gfs2/fsck/initialize.c:1016 gfs2/mkfs/main_grow.c:326
-#: gfs2/mkfs/main_jadd.c:519 gfs2/mkfs/main_mkfs.c:593
-#, c-format
+#: gfs2/fsck/initialize.c:1227
msgid "Bad constants (1)\n"
msgstr ""
-#: gfs2/fsck/initialize.c:1056
+#: gfs2/fsck/initialize.c:1354
+msgid "The gfs2 system rindex inode is missing. Okay to rebuild it? (y/n) "
+msgstr ""
+
+#: gfs2/fsck/initialize.c:1356
+msgid "Error: Cannot proceed without a valid rindex.\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:1360
+#, c-format
+msgid "Error %d rebuilding rindex\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:1385
+msgid "The gfs2 system jindex inode is missing. Okay to rebuild it? (y/n) "
+msgstr ""
+
+#: gfs2/fsck/initialize.c:1387
+msgid "Error: cannot proceed without a valid jindex file.\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:1401
+#, c-format
+msgid "Error %d rebuilding jindex\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:1408
+msgid "Unable to read in jindex inode.\n"
+msgstr ""
+
+#: gfs2/fsck/initialize.c:1435
#, c-format
msgid "Unable to open device: %s\n"
msgstr ""
-#: gfs2/fsck/initialize.c:1097
+#: gfs2/fsck/initialize.c:1481
msgid "Unable to block other mounters\n"
msgstr ""
-#: gfs2/fsck/initialize.c:1125
+#: gfs2/fsck/initialize.c:1533
msgid ""
"\n"
"Journal recovery complete.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:1137
+#: gfs2/fsck/initialize.c:1545
#, c-format
msgid "Device %s is busy.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:1145
+#: gfs2/fsck/initialize.c:1553
msgid "Unable to unblock other mounters - manual intervention required\n"
msgstr ""
-#: gfs2/fsck/initialize.c:1146
+#: gfs2/fsck/initialize.c:1554
msgid "Use 'gfs2_tool sb <device> proto' to fix\n"
msgstr ""
-#: gfs2/fsck/initialize.c:1148
+#: gfs2/fsck/initialize.c:1556
msgid "Syncing the device.\n"
msgstr ""
-#: gfs2/fsck/initialize.c:1159
+#: gfs2/fsck/initialize.c:1567
msgid "fsck.gfs2: Non-fatal error dropping caches.\n"
msgstr ""
-#: gfs2/fsck/inode_hash.c:51
+#: gfs2/fsck/inode_hash.c:52
msgid "Unable to allocate inode_info structure\n"
msgstr ""
-#: gfs2/fsck/inode_hash.c:55
+#: gfs2/fsck/inode_hash.c:56
msgid "Error while zeroing inode_info structure\n"
msgstr ""
-#: gfs2/fsck/link.c:40
+#: gfs2/fsck/link.c:43
#, c-format
-msgid ""
-"Directory %lld (0x%llx) incremented counted links to %u for %llu (0x%llx) "
-"via %s\n"
+msgid "Dir (0x%llx) incremented counted links to %u for (0x%llx) via %s\n"
msgstr ""
-#: gfs2/fsck/link.c:48
+#: gfs2/fsck/link.c:50
#, c-format
-msgid ""
-"Ref: %llu (0x%llx) No match found when incrementing link for %llu (0x%llx)!\n"
+msgid "Ref: (0x%llx) No match found when incrementing link for (0x%llx)!\n"
msgstr ""
#: gfs2/fsck/link.c:74
#, c-format
-msgid "Directory %llu (0x%llx)'s link to %llu (0x%llx) via %s is zero!\n"
+msgid "Dir (0x%llx)'s link to (0x%llx) via %s is zero!\n"
msgstr ""
-#: gfs2/fsck/link.c:83
+#: gfs2/fsck/link.c:81
#, c-format
-msgid ""
-"Directory %llu (0x%llx) decremented counted links to %u for %llu (0x%llx) "
-"via %s\n"
+msgid "Dir (0x%llx) decremented counted links to %u for (0x%llx) via %s\n"
msgstr ""
-#: gfs2/fsck/link.c:91
+#: gfs2/fsck/link.c:88
#, c-format
-msgid "No match found when decrementing link for %llu (0x%llx)!\n"
+msgid "No match found when decrementing link for (0x%llx)!\n"
msgstr ""
-#: gfs2/fsck/lost_n_found.c:39
-msgid "Locating/Creating lost+found directory\n"
+#: gfs2/fsck/lost_n_found.c:26
+#, c-format
+msgid ""
+"Adding .. entry to directory %llu (0x%llx) pointing back to lost+found\n"
msgstr ""
-#: gfs2/fsck/lost_n_found.c:61
-msgid "lost+found dinode"
+#: gfs2/fsck/lost_n_found.c:37
+#, c-format
+msgid "Directory %lld (0x%llx) already had a \"..\" link to %lld (0x%llx).\n"
msgstr ""
-#: gfs2/fsck/lost_n_found.c:65
-msgid "root"
+#: gfs2/fsck/lost_n_found.c:44
+msgid ".. unlinked, moving to lost+found"
msgstr ""
-#: gfs2/fsck/lost_n_found.c:74
+#: gfs2/fsck/lost_n_found.c:49
#, c-format
-msgid "lost+found directory is dinode %lld (0x%llx)\n"
+msgid "Decrementing its links to %d\n"
msgstr ""
-#: gfs2/fsck/lost_n_found.c:79
-msgid "Marking lost+found inode connected\n"
+#: gfs2/fsck/lost_n_found.c:53
+msgid "Its link count is zero.\n"
msgstr ""
-#: gfs2/fsck/lost_n_found.c:85
-msgid "Trying to add lost+found to itself...skipping"
+#: gfs2/fsck/lost_n_found.c:55
+#, c-format
+msgid "Its link count is %d! Changing it to 0.\n"
msgstr ""
-#: gfs2/fsck/lost_n_found.c:92
+#: gfs2/fsck/lost_n_found.c:65
#, c-format
-msgid "Adding .. entry pointing to lost+found for directory %llu (0x%llx)\n"
+msgid ""
+"Couldn't find a valid \"..\" entry for orphan directory %lld (0x%llx): '..' "
+"= 0x%llx\n"
msgstr ""
-#: gfs2/fsck/lost_n_found.c:103
+#: gfs2/fsck/lost_n_found.c:72
#, c-format
-msgid "Directory %lld (0x%llx) already had a \"..\" link to %lld (0x%llx).\n"
+msgid "Couldn't find directory %lld (0x%llx) in directory tree.\n"
msgstr ""
-#: gfs2/fsck/lost_n_found.c:111
-msgid ".. unlinked, moving to lost+found"
+#: gfs2/fsck/lost_n_found.c:78
+msgid "add_inode_to_lf: Unable to remove \"..\" directory entry.\n"
msgstr ""
-#: gfs2/fsck/lost_n_found.c:115
+#: gfs2/fsck/lost_n_found.c:84
#, c-format
-msgid "Decrementing its links to %d\n"
+msgid "Error adding .. directory: %s\n"
msgstr ""
-#: gfs2/fsck/lost_n_found.c:119
-msgid "Its link count is zero.\n"
+#: gfs2/fsck/lost_n_found.c:150
+msgid "Locating/Creating lost+found directory\n"
msgstr ""
-#: gfs2/fsck/lost_n_found.c:121
+#: gfs2/fsck/lost_n_found.c:165
#, c-format
-msgid "Its link count is %d! Changing it to 0.\n"
+msgid "Error creating lost+found: %s\n"
+msgstr ""
+
+#: gfs2/fsck/lost_n_found.c:187
+msgid "lost+found dinode"
+msgstr ""
+
+#: gfs2/fsck/lost_n_found.c:191
+msgid "root"
msgstr ""
-#: gfs2/fsck/lost_n_found.c:130
+#: gfs2/fsck/lost_n_found.c:202
#, c-format
-msgid "Couldn't find a valid \"..\" entry for orphan directory %lld (0x%llx)\n"
+msgid "lost+found directory is dinode %lld (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/lost_n_found.c:135
-msgid "add_inode_to_lf: Unable to remove \"..\" directory entry.\n"
+#: gfs2/fsck/lost_n_found.c:207
+msgid "Marking lost+found inode connected\n"
+msgstr ""
+
+#: gfs2/fsck/lost_n_found.c:213
+msgid "Trying to add lost+found to itself...skipping"
+msgstr ""
+
+#: gfs2/fsck/lost_n_found.c:270 gfs2/fsck/pass2.c:679 gfs2/fsck/pass2.c:899
+#: gfs2/fsck/pass3.c:60
+#, c-format
+msgid "Error adding directory %s: %s\n"
msgstr ""
-#: gfs2/fsck/lost_n_found.c:189
+#: gfs2/fsck/lost_n_found.c:281
msgid "from lost+found"
msgstr ""
-#: gfs2/fsck/lost_n_found.c:193
+#: gfs2/fsck/lost_n_found.c:285
msgid "to lost+found"
msgstr ""
-#: gfs2/fsck/lost_n_found.c:195
+#: gfs2/fsck/lost_n_found.c:287
#, c-format
-msgid "Added inode #%llu (0x%llx) to lost+found dir\n"
+msgid "Added inode #%llu (0x%llx) to lost+found\n"
msgstr ""
-#: gfs2/fsck/main.c:57
+#: gfs2/fsck/main.c:58
#, c-format
msgid "GFS2 fsck %s (built %s %s)\n"
msgstr ""
-#: gfs2/fsck/main.c:102 gfs2/fsck/main.c:113 gfs2/mkfs/main_grow.c:96
-#: gfs2/mkfs/main_jadd.c:132 gfs2/mkfs/main_mkfs.c:155
+#: gfs2/fsck/main.c:103 gfs2/fsck/main.c:114 gfs2/mkfs/main_grow.c:109
+#: gfs2/mkfs/main_jadd.c:138 gfs2/mkfs/main_mkfs.c:185
#, c-format
-msgid "Please use '-h' for usage.\n"
+msgid "Please use '-h' for help.\n"
msgstr ""
-#: gfs2/fsck/main.c:105 gfs2/mkfs/main_grow.c:99
+#: gfs2/fsck/main.c:106 gfs2/mkfs/main_grow.c:112
#, c-format
-msgid "Unknown option %c\n"
+msgid "Invalid option %c\n"
msgstr ""
-#: gfs2/fsck/main.c:117
+#: gfs2/fsck/main.c:118
#, c-format
-msgid "No device specified. Use '-h' for usage.\n"
+msgid "No device specified (Please use '-h' for help)\n"
msgstr ""
-#: gfs2/fsck/main.c:129
+#: gfs2/fsck/main.c:130
#, c-format
msgid "progress unknown.\n"
msgstr ""
-#: gfs2/fsck/main.c:131
+#: gfs2/fsck/main.c:132
#, c-format
msgid "processing block %llu out of %llu\n"
msgstr ""
-#: gfs2/fsck/main.c:136
+#: gfs2/fsck/main.c:137
msgid ""
"Do you want to abort gfs2_fsck, skip the rest of this pass or continue (a/s/"
"c)?"
msgstr ""
-#: gfs2/fsck/main.c:181
+#: gfs2/fsck/main.c:187
msgid "The statfs file is accurate.\n"
msgstr ""
-#: gfs2/fsck/main.c:184
+#: gfs2/fsck/main.c:190
msgid ""
"The statfs file is wrong:\n"
"\n"
msgstr ""
-#: gfs2/fsck/main.c:185
+#: gfs2/fsck/main.c:191
msgid "Current statfs values:\n"
msgstr ""
-#: gfs2/fsck/main.c:186 gfs2/fsck/main.c:197
+#: gfs2/fsck/main.c:192 gfs2/fsck/main.c:203
#, c-format
msgid "blocks: %lld (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/main.c:189 gfs2/fsck/main.c:200
+#: gfs2/fsck/main.c:195 gfs2/fsck/main.c:206
#, c-format
msgid "free: %lld (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/main.c:192
+#: gfs2/fsck/main.c:198
#, c-format
msgid ""
"dinodes: %lld (0x%llx)\n"
"\n"
msgstr ""
-#: gfs2/fsck/main.c:196
+#: gfs2/fsck/main.c:202
msgid "Calculated statfs values:\n"
msgstr ""
-#: gfs2/fsck/main.c:203
+#: gfs2/fsck/main.c:209
#, c-format
msgid "dinodes: %lld (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/main.c:208
+#: gfs2/fsck/main.c:214
msgid "Okay to fix the master statfs file? (y/n)"
msgstr ""
-#: gfs2/fsck/main.c:209
+#: gfs2/fsck/main.c:215
msgid "The statfs file was not fixed.\n"
msgstr ""
-#: gfs2/fsck/main.c:214
+#: gfs2/fsck/main.c:220
msgid "The statfs file was fixed.\n"
msgstr ""
-#: gfs2/fsck/main.c:234
-msgid "Initializing fsck\n"
+#: gfs2/fsck/main.c:249
+#, c-format
+msgid "Starting %s\n"
msgstr ""
-#: gfs2/fsck/main.c:239
+#: gfs2/fsck/main.c:255
#, c-format
-msgid "%s: clean.\n"
+msgid "%s interrupted \n"
msgstr ""
-#: gfs2/fsck/main.c:245
-msgid "Starting pass1\n"
+#: gfs2/fsck/main.c:258
+#, c-format
+msgid "%s complete \n"
msgstr ""
-#: gfs2/fsck/main.c:252
-msgid "Pass1 interrupted \n"
+#: gfs2/fsck/main.c:280
+msgid "Initializing fsck\n"
msgstr ""
-#: gfs2/fsck/main.c:255
-msgid "Pass1 complete \n"
+#: gfs2/fsck/main.c:285
+#, c-format
+msgid "%s: clean.\n"
msgstr ""
-#: gfs2/fsck/main.c:260
-msgid "Starting pass1b\n"
+#: gfs2/fsck/main.c:315
+msgid "Writing changes to disk\n"
msgstr ""
-#: gfs2/fsck/main.c:265
-msgid "Pass1b interrupted \n"
+#: gfs2/fsck/main.c:318
+msgid "gfs2_fsck complete\n"
msgstr ""
-#: gfs2/fsck/main.c:268
-msgid "Pass1b complete\n"
+#: gfs2/fsck/metawalk.c:40
+#, c-format
+msgid ""
+"Block %llu (0x%llx) is not represented in the system bitmap; part of an rgrp "
+"or superblock.\n"
msgstr ""
-#: gfs2/fsck/main.c:273
-msgid "Starting pass1c\n"
+#: gfs2/fsck/metawalk.c:54
+#, c-format
+msgid "Block %llu (0x%llx) was '%s', should be %s.\n"
msgstr ""
-#: gfs2/fsck/main.c:278
-msgid "Pass1c interrupted \n"
+#: gfs2/fsck/metawalk.c:58
+msgid "Fix the bitmap? (y/n)"
msgstr ""
-#: gfs2/fsck/main.c:281
-msgid "Pass1c complete\n"
+#: gfs2/fsck/metawalk.c:95
+msgid "The bitmap was fixed.\n"
msgstr ""
-#: gfs2/fsck/main.c:286
-msgid "Starting pass2\n"
+#: gfs2/fsck/metawalk.c:97
+msgid "The bitmap inconsistency was ignored.\n"
msgstr ""
-#: gfs2/fsck/main.c:291
-msgid "Pass2 interrupted \n"
+#: gfs2/fsck/metawalk.c:132
+#, c-format
+msgid "(%s:%d) %s inode found at block (0x%llx): marking as '%s'\n"
msgstr ""
-#: gfs2/fsck/main.c:294
-msgid "Pass2 complete \n"
+#: gfs2/fsck/metawalk.c:143 gfs2/fsck/metawalk.c:154
+#, c-format
+msgid "(%s:%d) inode (0x%llx) references %s block (0x%llx): marking as '%s'\n"
msgstr ""
-#: gfs2/fsck/main.c:299
-msgid "Starting pass3\n"
+#: gfs2/fsck/metawalk.c:169
+msgid "This block is not represented in the bitmap.\n"
msgstr ""
-#: gfs2/fsck/main.c:304
-msgid "Pass3 interrupted \n"
+#: gfs2/fsck/metawalk.c:360
+#, c-format
+msgid "Checking leaf %llu (0x%llu)\n"
msgstr ""
-#: gfs2/fsck/main.c:307
-msgid "Pass3 complete \n"
+#: gfs2/fsck/metawalk.c:365
+#, c-format
+msgid "Invalid directory type %d specified\n"
msgstr ""
-#: gfs2/fsck/main.c:312
-msgid "Starting pass4\n"
+#: gfs2/fsck/metawalk.c:383
+#, c-format
+msgid ""
+"Directory block %llu (0x%llx), entry %d of directory %llu (0x%llx) is "
+"corrupt.\n"
msgstr ""
-#: gfs2/fsck/main.c:317
-msgid "Pass4 interrupted \n"
+#: gfs2/fsck/metawalk.c:391
+msgid "Attempt to repair it? (y/n) "
msgstr ""
-#: gfs2/fsck/main.c:320
-msgid "Pass4 complete \n"
+#: gfs2/fsck/metawalk.c:398
+msgid ""
+"Unable to repair corrupt directory entry; the entry was removed instead.\n"
msgstr ""
-#: gfs2/fsck/main.c:325
-msgid "Starting pass5\n"
+#: gfs2/fsck/metawalk.c:404
+msgid "Corrupt directory entry repaired.\n"
msgstr ""
-#: gfs2/fsck/main.c:330
-msgid "Pass5 interrupted \n"
-msgstr ""
-
-#: gfs2/fsck/main.c:334
-msgid "Pass5 complete \n"
-msgstr ""
-
-#: gfs2/fsck/main.c:356
-msgid "Writing changes to disk\n"
-msgstr ""
-
-#: gfs2/fsck/main.c:359
-msgid "gfs2_fsck complete\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:40
-#, c-format
-msgid ""
-"Block %llu (0x%llx) is not represented in the system bitmap; part of an rgrp "
-"or superblock.\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:50
-#, c-format
-msgid ""
-"Block %llu (0x%llx) seems to be %s, but is marked as %s in the bitmap.\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:55
-msgid "Okay to fix the bitmap? (y/n)"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:84
-msgid "The bitmap was fixed.\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:86
-msgid "The bitmap inconsistency was ignored.\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:114
-#, c-format
-msgid "%s inode found at block %lld (0x%llx): marking as '%s'\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:123 gfs2/fsck/metawalk.c:135
-#, c-format
-msgid ""
-"inode %lld (0x%llx) references %s block %lld (0x%llx): marking as '%s'\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:152
-msgid "This block is not represented in the bitmap.\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:323
-#, c-format
-msgid "Checking leaf %llu (0x%llu)\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:328
-#, c-format
-msgid "Invalid directory type %d specified\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:346
-#, c-format
-msgid ""
-"Directory block %llu (0x%llx), entry %d of directory %llu(0x%llx) is "
-"corrupt.\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:354
-msgid "Attempt to repair it? (y/n) "
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:361
-msgid ""
-"Unable to repair corrupt directory entry; the entry was removed instead.\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:367
-msgid "Corrupt directory entry repaired.\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:372 gfs2/fsck/metawalk.c:395
+#: gfs2/fsck/metawalk.c:409 gfs2/fsck/metawalk.c:432
#, c-format
msgid "Corrupt directory entry ignored, stopped after checking %d entries.\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:380
+#: gfs2/fsck/metawalk.c:417
msgid "First dirent is a sentinel (place holder).\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:383
+#: gfs2/fsck/metawalk.c:420
#, c-format
msgid ""
"Directory entry with inode number of zero in leaf %llu (0x%llx) of directory "
"%llu (0x%llx)!\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:390
+#: gfs2/fsck/metawalk.c:427
msgid "Attempt to remove it? (y/n) "
msgstr ""
-#: gfs2/fsck/metawalk.c:392
+#: gfs2/fsck/metawalk.c:429
msgid "The corrupt directory entry was removed.\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:404
+#: gfs2/fsck/metawalk.c:441
msgid "First dirent is a Sentinel (place holder).\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:424
+#: gfs2/fsck/metawalk.c:461
#, c-format
msgid "Last entry processed for %lld->%lld (0x%llx->0x%llx).\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:453
+#: gfs2/fsck/metawalk.c:493
#, c-format
msgid "Directory Inode %llu (0x%llx) points to leaf %llu (0x%llx) %s.\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:461
+#: gfs2/fsck/metawalk.c:501
msgid "Attempt to patch around it? (y/n) "
msgstr ""
-#: gfs2/fsck/metawalk.c:466
+#: gfs2/fsck/metawalk.c:506
#, c-format
msgid "Directory Inode %llu (0x%llx) repaired.\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:471
+#: gfs2/fsck/metawalk.c:510
msgid "Bad leaf left in place.\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:496
-msgid "Error: Cannot allocate memory to fix the leaf pointers.\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:504 gfs2/fsck/metawalk.c:518
-msgid "Error: bad read while fixing leaf pointers.\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:547
-#, c-format
-msgid ""
-"Directory #%llu (0x%llx) has an invalid number of pointers to leaf #%llu (0x"
-"%llx)\n"
-"\tFound: %u, which is not a factor of 2.\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:555 gfs2/fsck/metawalk.c:576
-msgid "Attempt to fix it? (y/n) "
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:556
-msgid "Directory inode was not fixed.\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:563
-msgid "Directory inode was fixed.\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:568
+#: gfs2/fsck/metawalk.c:534
#, c-format
msgid ""
-"Directory #%llu (0x%llx) has an incorrect number of pointers to leaf #%llu "
-"(0x%llx)\n"
-"\tFound: %u, Expected: %u\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:577
-msgid "Directory leaf was not fixed.\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:582
-#, c-format
-msgid "Leaf depth was %d, changed to %d\n"
+"Leaf block #%llu (0x%llx) is out of range for directory #%llu (0x%llx).\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:588
-msgid "Directory leaf was fixed.\n"
+#: gfs2/fsck/metawalk.c:540
+msgid "that is out of range"
msgstr ""
-#: gfs2/fsck/metawalk.c:624
-#, c-format
-msgid "Directory #%llu (0x%llx) has no valid leaf blocks\n"
+#: gfs2/fsck/metawalk.c:548
+msgid "that is not really a leaf"
msgstr ""
-#: gfs2/fsck/metawalk.c:664
+#: gfs2/fsck/metawalk.c:554
#, c-format
msgid ""
-"Leaf block #%llu (0x%llx) is out of range for directory #%llu (0x%llx).\n"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:674
-msgid "that is out of range"
+"Previous reference to leaf %lld (0x%llx) has already checked it; skipping.\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:685
-msgid "that is not really a leaf"
-msgstr ""
-
-#: gfs2/fsck/metawalk.c:704
+#: gfs2/fsck/metawalk.c:569
#, c-format
-msgid "incorrect lf_dirent_format at leaf #%llu\n"
+msgid "incorrect lf_dirent_format at leaf #%<PRIu64>\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:707
+#: gfs2/fsck/metawalk.c:573
msgid "Fixing lf_dirent_format.\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:712
+#: gfs2/fsck/metawalk.c:578
#, c-format
msgid "Inode %llu (0x%llx) points to bad leaf %llu (0x%llx).\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:743
+#: gfs2/fsck/metawalk.c:584
+msgid "that is not a leaf"
+msgstr ""
+
+#: gfs2/fsck/metawalk.c:606
#, c-format
msgid ""
-"Leaf %llu (0x%llx) entry count in directory %llu (0x%llx) doesn't match "
+"Leaf %llu (0x%llx) entry count in directory %llu (0x%llx) does not match "
"number of entries found - is %u, found %u\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:755
+#: gfs2/fsck/metawalk.c:614
msgid "Update leaf entry count? (y/n) "
msgstr ""
-#: gfs2/fsck/metawalk.c:758
+#: gfs2/fsck/metawalk.c:617
msgid "Leaf entry count updated\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:760
+#: gfs2/fsck/metawalk.c:619
msgid "Leaf entry count left in inconsistant state\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:769
+#: gfs2/fsck/metawalk.c:672
+#, c-format
+msgid "Directory #%llu (0x%llx) has no valid leaf blocks\n"
+msgstr ""
+
+#: gfs2/fsck/metawalk.c:722
+#, c-format
+msgid "Leaf chain (0x%llx) detected.\n"
+msgstr ""
+
+#: gfs2/fsck/metawalk.c:778
#, c-format
-msgid "Leaf chain 0x%llx detected.\n"
+msgid "Bad extended attribute found at block %lld (0x%llx)"
msgstr ""
-#: gfs2/fsck/metawalk.c:825
+#: gfs2/fsck/metawalk.c:785
msgid "Repair the bad Extended Attribute? (y/n) "
msgstr ""
-#: gfs2/fsck/metawalk.c:837 gfs2/fsck/metawalk.c:1487 gfs2/fsck/pass1.c:879
-#: gfs2/fsck/pass1.c:961
+#: gfs2/fsck/metawalk.c:797 gfs2/fsck/metawalk.c:1511 gfs2/fsck/pass1.c:1044
msgid "extended attribute"
msgstr ""
-#: gfs2/fsck/metawalk.c:839
+#: gfs2/fsck/metawalk.c:799
msgid "The EA was fixed.\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:843
+#: gfs2/fsck/metawalk.c:803
msgid "The bad EA was not fixed.\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:879
+#: gfs2/fsck/metawalk.c:841
#, c-format
msgid "Checking EA leaf block #%llu (0x%llx).\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:938
+#: gfs2/fsck/metawalk.c:899
#, c-format
msgid ""
-"%s block %lld (0x%llx), part of inode %lld (0x%llx), was already free.\n"
+"Removing duplicate status of block %llu (0x%llx) referenced as %s by dinode "
+"%llu (0x%llx)\n"
+msgstr ""
+
+#: gfs2/fsck/metawalk.c:906
+msgid "This leaves only one reference: it's no longer a duplicate.\n"
+msgstr ""
+
+#: gfs2/fsck/metawalk.c:910
+#, c-format
+msgid "%d block reference(s) remain.\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:948
+#: gfs2/fsck/metawalk.c:951
#, c-format
-msgid "Removing duplicate reference %d to block %lld (0x%llx).\n"
+msgid ""
+"%s block %lld (0x%llx), part of inode %lld (0x%llx), was already free.\n"
msgstr ""
#: gfs2/fsck/metawalk.c:980
@@ -1188,696 +1273,789 @@ msgstr ""
msgid "Extended attributes exist for inode #%llu (0x%llx).\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:1188
+#: gfs2/fsck/metawalk.c:1193
#, c-format
msgid "Skipping block %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:1194
+#: gfs2/fsck/metawalk.c:1199
#, c-format
msgid "Skipping invalid block %lld (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:1361
+#: gfs2/fsck/metawalk.c:1372
#, c-format
msgid ""
"\rLarge file at %lld (0x%llx) - 100 percent "
"complete. \n"
msgstr ""
-#: gfs2/fsck/metawalk.c:1436
+#: gfs2/fsck/metawalk.c:1448
#, c-format
msgid "Removing dentry %llu (0x%llx) from directory %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:1441
-msgid "Parent directory out of range\n"
+#: gfs2/fsck/metawalk.c:1453
+msgid "Parent directory is invalid\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:1449
+#: gfs2/fsck/metawalk.c:1461
msgid "Parent block is not a directory...ignoring\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:1462 gfs2/fsck/pass1.c:851 gfs2/fsck/pass1.c:933
+#: gfs2/fsck/metawalk.c:1474 gfs2/fsck/pass1.c:1016
msgid "metadata"
msgstr ""
-#: gfs2/fsck/metawalk.c:1468 gfs2/fsck/pass1.c:857 gfs2/fsck/pass1.c:939
+#: gfs2/fsck/metawalk.c:1479 gfs2/fsck/pass1.c:1022
msgid "leaf"
msgstr ""
-#: gfs2/fsck/metawalk.c:1473 gfs2/fsck/pass1.c:393 gfs2/fsck/pass1.c:427
-#: gfs2/fsck/pass1.c:863 gfs2/fsck/pass1.c:945
+#: gfs2/fsck/metawalk.c:1484 gfs2/fsck/pass1.c:563 gfs2/fsck/pass1.c:583
+#: gfs2/fsck/pass1.c:1028
msgid "data"
msgstr ""
-#: gfs2/fsck/metawalk.c:1480 gfs2/fsck/pass1.c:871 gfs2/fsck/pass1.c:953
+#: gfs2/fsck/metawalk.c:1493 gfs2/fsck/pass1.c:1036
msgid "indirect extended attribute"
msgstr ""
-#: gfs2/fsck/metawalk.c:1503
+#: gfs2/fsck/metawalk.c:1534
#, c-format
msgid ""
"%s reference to new metadata block %lld (0x%llx) is now marked as indirect.\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:1522
+#: gfs2/fsck/metawalk.c:1553
#, c-format
msgid "%s reference to new data block %lld (0x%llx) is now marked as data.\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:1541
+#: gfs2/fsck/metawalk.c:1571
msgid "newly allocated leaf"
msgstr ""
-#: gfs2/fsck/metawalk.c:1581
+#: gfs2/fsck/metawalk.c:1611
#, c-format
msgid "%s had blocks added; reprocessing its metadata tree at height=%d.\n"
msgstr ""
-#: gfs2/fsck/metawalk.c:1585
+#: gfs2/fsck/metawalk.c:1615
#, c-format
msgid "Error %d reprocessing the %s metadata tree.\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:153
+#: gfs2/fsck/pass1b.c:159
#, c-format
msgid ""
"Duplicate block %llu (0x%llx) is in file or directory %llu (0x%llx) named "
"%s\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:223
+#: gfs2/fsck/pass1b.c:229
msgid "no longer valid"
msgstr ""
-#: gfs2/fsck/pass1b.c:229
+#: gfs2/fsck/pass1b.c:235
#, c-format
msgid ""
"Not clearing duplicate reference in inode \"%s\" at block #%llu (0x%llx) to "
"block #%llu (0x%llx) because it's valid for another inode.\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:232
+#: gfs2/fsck/pass1b.c:238
msgid "unknown name"
msgstr ""
-#: gfs2/fsck/pass1b.c:236
+#: gfs2/fsck/pass1b.c:242
#, c-format
msgid "Inode %s is in directory %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:333
+#: gfs2/fsck/pass1b.c:344
#, c-format
msgid "Block %lld (0x%llx) is not gfs2 metadata.\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:380
+#: gfs2/fsck/pass1b.c:416 gfs2/fsck/pass1b.c:469
msgid "Invalid "
msgstr ""
-#: gfs2/fsck/pass1b.c:381
+#: gfs2/fsck/pass1b.c:417
#, c-format
msgid ""
"Inode %s (%lld/0x%llx) has %d reference(s) to block %llu (0x%llx) (%s)\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:414
+#: gfs2/fsck/pass1b.c:497
+#, c-format
+msgid ""
+"Inode %s (%lld/0x%llx) references block %llu (0x%llx) as '%s', but the block "
+"is really %s.\n"
+msgstr ""
+
+#: gfs2/fsck/pass1b.c:505
#, c-format
-msgid "Okay to clear %s inode %lld (0x%llx)? (y/n) "
+msgid "Okay to delete %s inode %lld (0x%llx)? (y/n) "
msgstr ""
-#: gfs2/fsck/pass1b.c:415
+#: gfs2/fsck/pass1b.c:507
msgid "invalidated"
msgstr ""
-#: gfs2/fsck/pass1b.c:418
-msgid "The bad inode was not cleared...\n"
+#: gfs2/fsck/pass1b.c:510
+msgid "The bad inode was not cleared."
msgstr ""
-#: gfs2/fsck/pass1b.c:421
+#: gfs2/fsck/pass1b.c:519
#, c-format
-msgid "Clearing inode %lld (0x%llx)....\n"
+msgid "Clearing inode %lld (0x%llx)...\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:434
-msgid "bad"
+#: gfs2/fsck/pass1b.c:536
+msgid "duplicate referencing bad"
msgstr ""
-#: gfs2/fsck/pass1b.c:492
+#: gfs2/fsck/pass1b.c:574
#, c-format
msgid ""
-"Inode %s (%lld/0x%llx) has a reference to data block %llu (0x%llx), but the "
-"block is really metadata.\n"
-msgstr ""
-
-#: gfs2/fsck/pass1b.c:499
-msgid "Clear the inode? (y/n) "
+"Block %llu (0x%llx) has %d inodes referencing it for a total of %d duplicate "
+"references:\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:502
+#: gfs2/fsck/pass1b.c:632
#, c-format
-msgid "Clearing inode %lld (0x%llx)...\n"
+msgid ""
+"----------------------------------------------\n"
+"Step 1: Eliminate references to block %llu (0x%llx) that were previously "
+"marked invalid.\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:512
-msgid "inode with bad duplicate"
+#: gfs2/fsck/pass1b.c:648
+#, c-format
+msgid ""
+"----------------------------------------------\n"
+"Step 2: Eliminate references to block %llu (0x%llx) that need the wrong "
+"block type.\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:516
-msgid "The bad inode was not cleared."
+#: gfs2/fsck/pass1b.c:663
+#, c-format
+msgid ""
+"----------------------------------------------\n"
+"Step 3: Choose one reference to block %llu (0x%llx) to keep.\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:522
+#: gfs2/fsck/pass1b.c:674
#, c-format
-msgid "Block %llu (0x%llx) has only one remaining reference.\n"
+msgid "Block %llu (0x%llx) has no more references; Marking as 'free'.\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:529
+#: gfs2/fsck/pass1b.c:685
#, c-format
-msgid ""
-"Block %llu (0x%llx) has %d inodes referencing it for a total of %d duplicate "
-"references\n"
+msgid "Block %llu (0x%llx) has only one remaining reference.\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:555
+#: gfs2/fsck/pass1b.c:696
#, c-format
msgid ""
-"Resetting the type based on the remaining reference in inode %lld (0x%llx).\n"
+"----------------------------------------------\n"
+"Step 4. Set block type based on the remaining reference in inode %lld (0x"
+"%llx).\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:563
+#: gfs2/fsck/pass1b.c:705
#, c-format
msgid ""
"The remaining reference inode %lld (0x%llx) is marked invalid: Marking the "
"block as free.\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:569 gfs2/fsck/pass1b.c:578
+#: gfs2/fsck/pass1b.c:711 gfs2/fsck/pass1b.c:722
msgid "reference-repaired leaf"
msgstr ""
-#: gfs2/fsck/pass1b.c:573
+#: gfs2/fsck/pass1b.c:717
msgid "reference-repaired data"
msgstr ""
-#: gfs2/fsck/pass1b.c:582
+#: gfs2/fsck/pass1b.c:726
msgid "reference-repaired indirect"
msgstr ""
-#: gfs2/fsck/pass1b.c:587
+#: gfs2/fsck/pass1b.c:731
msgid "reference-repaired extended attribute"
msgstr ""
-#: gfs2/fsck/pass1b.c:592
-msgid "All duplicate references were resolved.\n"
+#: gfs2/fsck/pass1b.c:737
+msgid "All duplicate references were processed.\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:608
+#: gfs2/fsck/pass1b.c:753
msgid "Looking for duplicate blocks...\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:612
+#: gfs2/fsck/pass1b.c:757
msgid "No duplicate blocks found\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:618
+#: gfs2/fsck/pass1b.c:763
msgid "Scanning filesystem for inodes containing duplicate blocks...\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:619
+#: gfs2/fsck/pass1b.c:764
#, c-format
msgid "Filesystem has %llu (0x%llx) blocks total\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:627
+#: gfs2/fsck/pass1b.c:772
#, c-format
msgid "Found all %d original references to duplicates.\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:639
+#: gfs2/fsck/pass1b.c:784
#, c-format
msgid "Checking invalidated duplicate dinode %lld (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass1b.c:654
+#: gfs2/fsck/pass1b.c:799
msgid "Handling duplicate blocks\n"
msgstr ""
-#: gfs2/fsck/pass1.c:127 gfs2/fsck/pass1.c:226 gfs2/fsck/pass1.c:300
+#: gfs2/fsck/pass1.c:129
msgid "itself"
msgstr ""
-#: gfs2/fsck/pass1.c:128
+#: gfs2/fsck/pass1.c:130
#, c-format
msgid ""
-"Bad indirect block pointer (out of range) found in system inode %lld (0x"
-"%llx).\n"
+"Bad indirect block pointer (invalid or out of range) found in system inode "
+"%lld (0x%llx).\n"
msgstr ""
-#: gfs2/fsck/pass1.c:135 gfs2/fsck/pass1.c:188
+#: gfs2/fsck/pass1.c:137 gfs2/fsck/pass1.c:191
msgid "system file"
msgstr ""
-#: gfs2/fsck/pass1.c:170
+#: gfs2/fsck/pass1.c:172
#, c-format
msgid ""
"Block # referenced by system directory entry %s in inode %lld (0x%llx) is "
-"out of range; ignored.\n"
+"invalid or out of range; ignored.\n"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:226
+msgid "Error: Cannot allocate memory to fix the leaf pointers.\n"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:234 gfs2/fsck/pass1.c:252
+msgid "Error: bad read while fixing leaf pointers.\n"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:301
+#, c-format
+msgid ""
+"Directory #%llu (0x%llx) has an invalid number of pointers to leaf #%llu (0x"
+"%llx)\n"
+"\tFound: %u, which is not a factor of 2.\n"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:308 gfs2/fsck/pass1.c:329
+msgid "Attempt to fix it? (y/n) "
+msgstr ""
+
+#: gfs2/fsck/pass1.c:309
+msgid "Directory inode was not fixed.\n"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:316
+msgid "Directory inode was fixed.\n"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:322
+#, c-format
+msgid ""
+"Directory #%llu (0x%llx) has an incorrect number of pointers to leaf #%llu "
+"(0x%llx)\n"
+"\tFound: %u, Expected: %u\n"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:330
+msgid "Directory leaf was not fixed.\n"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:335
+#, c-format
+msgid "Leaf depth was %d, changed to %d\n"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:340
+msgid "Directory leaf was fixed.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:208
+#: gfs2/fsck/pass1.c:355
+#, c-format
+msgid ""
+"Found duplicate block %llu (0x%llx) referenced as a directory leaf in dinode "
+"%llu (0x%llx) - was marked %d (%s)\n"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:369
msgid "directory leaf"
msgstr ""
-#: gfs2/fsck/pass1.c:227
+#: gfs2/fsck/pass1.c:391 gfs2/fsck/pass1.c:468
+msgid "bad block referencing"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:392
#, c-format
msgid ""
-"Bad indirect block pointer (out of range) found in inode %lld (0x%llx).\n"
+"Bad indirect block (invalid/out of range) found in inode %lld (0x%llx).\n"
msgstr ""
-#: gfs2/fsck/pass1.c:236
+#: gfs2/fsck/pass1.c:401
msgid "a directory hash table block"
msgstr ""
-#: gfs2/fsck/pass1.c:239
+#: gfs2/fsck/pass1.c:404
msgid "a journaled data block"
msgstr ""
-#: gfs2/fsck/pass1.c:243
+#: gfs2/fsck/pass1.c:408
#, c-format
msgid ""
"Found duplicate block %llu (0x%llx) referenced as metadata in indirect block "
"for dinode %llu (0x%llx) - was marked %d (%s)\n"
msgstr ""
-#: gfs2/fsck/pass1.c:257
+#: gfs2/fsck/pass1.c:422
#, c-format
msgid ""
"Inode %lld (0x%llx) has a bad indirect block pointer %lld (0x%llx) (points "
"to something that is not %s).\n"
msgstr ""
-#: gfs2/fsck/pass1.c:265 gfs2/fsck/pass1.c:326 gfs2/fsck/pass1.c:343
+#: gfs2/fsck/pass1.c:430 gfs2/fsck/pass1.c:481 gfs2/fsck/pass1.c:498
msgid "bad indirect"
msgstr ""
-#: gfs2/fsck/pass1.c:281
+#: gfs2/fsck/pass1.c:450
msgid "indirect"
msgstr ""
-#: gfs2/fsck/pass1.c:310
-#, c-format
-msgid ""
-"Reversing duplicate status of block %llu (0x%llx) referenced as metadata in "
-"indirect block for dinode %llu (0x%llx)\n"
+#: gfs2/fsck/pass1.c:476
+msgid "Metadata"
msgstr ""
-#: gfs2/fsck/pass1.c:354
+#: gfs2/fsck/pass1.c:509
#, c-format
-msgid "inode %lld (0x%llx) has a bad data block pointer %lld (out of range)\n"
+msgid ""
+"inode %lld (0x%llx) has a bad data block pointer %lld (invalid or out of "
+"range)\n"
msgstr ""
-#: gfs2/fsck/pass1.c:363 gfs2/fsck/pass1.c:409
+#: gfs2/fsck/pass1.c:518
msgid "bad (out of range) data"
msgstr ""
-#: gfs2/fsck/pass1.c:369
+#: gfs2/fsck/pass1.c:524
#, c-format
msgid ""
"Found duplicate %s block %llu (0x%llx) referenced as data by dinode %llu (0x"
"%llx)\n"
msgstr ""
-#: gfs2/fsck/pass1.c:377
+#: gfs2/fsck/pass1.c:532
msgid "Seems to be a normal duplicate; I'll sort it out in pass1b.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:387
+#: gfs2/fsck/pass1.c:542
msgid ""
"The block was invalid as metadata but might be okay as data. I'll sort it "
"out in pass1b.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:415
+#: gfs2/fsck/pass1.c:552
#, c-format
-msgid ""
-"Reversing duplicate status of block %llu (0x%llx) referenced as data by "
-"dinode %llu (0x%llx)\n"
+msgid "Block %lld (0x%llx) is a GFS1 rindex block\n"
msgstr ""
-#: gfs2/fsck/pass1.c:450
+#: gfs2/fsck/pass1.c:555
+msgid "rgrp"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:558
+#, c-format
+msgid "Block %lld (0x%llx) is a GFS1 journaled data block\n"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:561
+msgid "jdata"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:578
+msgid "bad (invalid or out of range) data"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:604
#, c-format
msgid ""
"Moving inode %lld (0x%llx)'s duplicate reference to %lld (0x%llx) from the "
"valid to the invalid reference list.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:471
+#: gfs2/fsck/pass1.c:625
#, c-format
msgid "Duplicate reference to %lld (0x%llx) not moved.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:490
+#: gfs2/fsck/pass1.c:644
#, c-format
msgid "Inode %lld (0x%llx) has unrecoverable Extended Attribute errors.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:493
+#: gfs2/fsck/pass1.c:647
msgid "Clear all Extended Attributes from the inode? (y/n) "
msgstr ""
-#: gfs2/fsck/pass1.c:495
+#: gfs2/fsck/pass1.c:649
msgid "Extended attributes were removed.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:497
+#: gfs2/fsck/pass1.c:651
msgid "Unable to remove inode eattr pointer; the error remains.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:500
+#: gfs2/fsck/pass1.c:654
msgid "Extended attributes were not removed.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:517
+#: gfs2/fsck/pass1.c:671
#, c-format
msgid "Inode #%llu (0x%llx): %s"
msgstr ""
-#: gfs2/fsck/pass1.c:520
+#: gfs2/fsck/pass1.c:674
#, c-format
msgid " at block #%lld (0x%llx).\n"
msgstr ""
-#: gfs2/fsck/pass1.c:522
+#: gfs2/fsck/pass1.c:676
msgid "Clear the bad Extended Attribute? (y/n) "
msgstr ""
-#: gfs2/fsck/pass1.c:525
+#: gfs2/fsck/pass1.c:679
msgid "The bad extended attribute was removed.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:529
+#: gfs2/fsck/pass1.c:683
msgid "bad extended attribute"
msgstr ""
-#: gfs2/fsck/pass1.c:533
+#: gfs2/fsck/pass1.c:687
msgid "The bad Extended Attribute was not fixed.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:567
+#: gfs2/fsck/pass1.c:721
msgid "Bad indirect Extended Attribute duplicate found"
msgstr ""
-#: gfs2/fsck/pass1.c:573
+#: gfs2/fsck/pass1.c:727
msgid "Extended Attribute indirect block has incorrect type"
msgstr ""
-#: gfs2/fsck/pass1.c:578
+#: gfs2/fsck/pass1.c:732
#, c-format
msgid ""
"Inode #%llu (0x%llx): Duplicate Extended Attribute indirect block found at #"
"%llu (0x%llx).\n"
msgstr ""
-#: gfs2/fsck/pass1.c:590
+#: gfs2/fsck/pass1.c:744
msgid "indirect Extended Attribute"
msgstr ""
-#: gfs2/fsck/pass1.c:606
+#: gfs2/fsck/pass1.c:760
#, c-format
msgid "Marking inode #%llu (0x%llx) with extended attribute block\n"
msgstr ""
-#: gfs2/fsck/pass1.c:624
+#: gfs2/fsck/pass1.c:778
#, c-format
msgid ""
"Inode %lld (0x%llx) has recoverable indirect Extended Attribute errors.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:628
+#: gfs2/fsck/pass1.c:782
msgid "Okay to fix the block count for the inode? (y/n) "
msgstr ""
-#: gfs2/fsck/pass1.c:632
+#: gfs2/fsck/pass1.c:786
msgid "Block count fixed.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:635
+#: gfs2/fsck/pass1.c:789
msgid "Block count not fixed.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:657
+#: gfs2/fsck/pass1.c:814
msgid "Bad Extended Attribute duplicate found"
msgstr ""
-#: gfs2/fsck/pass1.c:660
+#: gfs2/fsck/pass1.c:817
msgid "Extended Attribute leaf block has incorrect type"
msgstr ""
-#: gfs2/fsck/pass1.c:667
+#: gfs2/fsck/pass1.c:824
#, c-format
msgid "Duplicate block found at #%lld (0x%llx).\n"
msgstr ""
-#: gfs2/fsck/pass1.c:680
+#: gfs2/fsck/pass1.c:837
msgid "Extended Attribute block removed due to previous errors.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:688
+#: gfs2/fsck/pass1.c:845
msgid "Extended Attribute"
msgstr ""
-#: gfs2/fsck/pass1.c:717
+#: gfs2/fsck/pass1.c:874
#, c-format
msgid ""
"Inode #%llu (0x%llx): Extended Attribute block %llu (0x%llx) has an extended "
-"leaf block #%llu (0x%llx) that is out of range.\n"
+"leaf block #%llu (0x%llx) that is invalid or out of range.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:727
+#: gfs2/fsck/pass1.c:884
msgid "bad (out of range) Extended Attribute "
msgstr ""
-#: gfs2/fsck/pass1.c:750
+#: gfs2/fsck/pass1.c:907
#, c-format
msgid "Setting inode %lld (0x%llx) as having eattr block(s) attached.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:761
+#: gfs2/fsck/pass1.c:918
#, c-format
msgid ""
-"Inode #%llu (0x%llx): Extended Attribute leaf block #%llu (0x%llx) is out of "
-"range.\n"
+"Inode #%llu (0x%llx): Extended Attribute leaf block #%llu (0x%llx) is "
+"invalid or out of range.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:767
+#: gfs2/fsck/pass1.c:925
msgid "bad (out of range) Extended Attribute leaf"
msgstr ""
-#: gfs2/fsck/pass1.c:834
+#: gfs2/fsck/pass1.c:999
#, c-format
msgid ""
-"%s block %lld (0x%llx), part of inode %lld (0x%llx), was free so the invalid "
-"reference is ignored.\n"
+"%s block %lld (0x%llx), part of inode %lld (0x%llx), was previously "
+"referenced so the invalid reference is ignored.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:902
+#: gfs2/fsck/pass1.c:1073
#, c-format
msgid ""
-"Bad %s block pointer (out of range #%ld) found in inode %lld (0x%llx).\n"
+"Bad %s block pointer (invalid or out of range #%ld) found in inode %lld (0x"
+"%llx).\n"
msgstr ""
-#: gfs2/fsck/pass1.c:916
+#: gfs2/fsck/pass1.c:1087
#, c-format
msgid ""
-"Duplicated %s block pointer (violation #%ld) found in inode %lld (0x%llx).\n"
+"Duplicated %s block pointer (violation %ld, block %lld (0x%llx)) found in "
+"inode %lld (0x%llx).\n"
msgstr ""
-#: gfs2/fsck/pass1.c:993
+#: gfs2/fsck/pass1.c:1162
#, c-format
msgid "Error: inode %llu (0x%llx) has more than %d bad pointers.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:999
+#: gfs2/fsck/pass1.c:1168
msgid "badly corrupt"
msgstr ""
-#: gfs2/fsck/pass1.c:1006
-msgid "directory"
-msgstr ""
-
-#: gfs2/fsck/pass1.c:1013
-msgid "file"
-msgstr ""
-
-#: gfs2/fsck/pass1.c:1018
-msgid "symlink"
-msgstr ""
-
-#: gfs2/fsck/pass1.c:1023
-msgid "block device"
-msgstr ""
-
-#: gfs2/fsck/pass1.c:1028
-msgid "character device"
-msgstr ""
-
-#: gfs2/fsck/pass1.c:1033
-msgid "fifo"
-msgstr ""
-
-#: gfs2/fsck/pass1.c:1038
-msgid "socket"
-msgstr ""
-
-#: gfs2/fsck/pass1.c:1055
-msgid "invalid mode"
-msgstr ""
-
-#: gfs2/fsck/pass1.c:1066
+#: gfs2/fsck/pass1.c:1200
#, c-format
msgid ""
"Directory dinode block #%llu (0x%llx) has bad depth. Found %u, Expected %u\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1072
+#: gfs2/fsck/pass1.c:1206
msgid "bad depth"
msgstr ""
-#: gfs2/fsck/pass1.c:1084
+#: gfs2/fsck/pass1.c:1218
#, c-format
msgid "Error: inode %llu (0x%llx) has unrecoverable errors; invalidating.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1095
+#: gfs2/fsck/pass1.c:1229
msgid "corrupt"
msgstr ""
-#: gfs2/fsck/pass1.c:1107
+#: gfs2/fsck/pass1.c:1241
#, c-format
msgid ""
"Inode #%llu (0x%llx): Ondisk block count (%llu) does not match what fsck "
"found (%llu)\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1114
+#: gfs2/fsck/pass1.c:1248
#, c-format
msgid ""
"inode has: %lld, but fsck counts: Dinode:1 + indir:%lld + data: %lld + ea: "
"%lld\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1120
+#: gfs2/fsck/pass1.c:1254
msgid "Fix ondisk block count? (y/n) "
msgstr ""
-#: gfs2/fsck/pass1.c:1124
+#: gfs2/fsck/pass1.c:1258
#, c-format
msgid "Block count for #%llu (0x%llx) fixed\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1128
+#: gfs2/fsck/pass1.c:1262
#, c-format
msgid "Bad block count for #%llu (0x%llx) not fixed\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1154
+#: gfs2/fsck/pass1.c:1288
#, c-format
msgid ""
"Found a duplicate inode block at #%llu (0x%llx) previously marked as a %s\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1164
+#: gfs2/fsck/pass1.c:1298
#, c-format
msgid "Inode #%llu (0x%llx): Bad inode address found: %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1169
+#: gfs2/fsck/pass1.c:1303
#, c-format
msgid "Fix address in inode at block #%llu (0x%llx)? (y/n) "
msgstr ""
-#: gfs2/fsck/pass1.c:1175
+#: gfs2/fsck/pass1.c:1309
#, c-format
msgid "Address in inode at block #%llu (0x%llx) not fixed\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1199
+#: gfs2/fsck/pass1.c:1333
#, c-format
msgid "Checking system inode '%s'\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1204
+#: gfs2/fsck/pass1.c:1338
#, c-format
msgid "System inode for '%s' is located at block %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1209
+#: gfs2/fsck/pass1.c:1343
#, c-format
msgid "Found invalid system dinode at block #%llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1225
+#: gfs2/fsck/pass1.c:1359
msgid "The inode exists but the block is not marked 'in use'; fixing it.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1235
+#: gfs2/fsck/pass1.c:1369
#, c-format
msgid "System inode for '%s' is corrupt or missing.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1242
+#: gfs2/fsck/pass1.c:1376
#, c-format
msgid "Invalid or missing %s system inode (should be %d, is %d).\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1244
+#: gfs2/fsck/pass1.c:1378
#, c-format
msgid "Create new %s system inode? (y/n) "
msgstr ""
-#: gfs2/fsck/pass1.c:1245
+#: gfs2/fsck/pass1.c:1379
#, c-format
msgid "Rebuilding system file \"%s\"\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1249
+#: gfs2/fsck/pass1.c:1383
#, c-format
msgid "Error trying to rebuild system file %s: Cannot continue\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1261
+#: gfs2/fsck/pass1.c:1395
#, c-format
msgid "Cannot continue without valid %s inode\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1403
+#: gfs2/fsck/pass1.c:1413
#, c-format
-msgid "Checking metadata in Resource Group #%llu\n"
+msgid "Error found in %s while checking directory entries.\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1407
+#: gfs2/fsck/pass1.c:1432
#, c-format
-msgid "rgrp block %lld (0x%llx) is now marked as 'rgrp data'\n"
+msgid "Error %d building journal\n"
msgstr ""
-#: gfs2/fsck/pass1.c:1436
-#, c-format
-msgid "Skipping pass 1 is not a good idea.\n"
+#: gfs2/fsck/pass1.c:1508
+msgid "gfs1 statfs inode"
msgstr ""
-#: gfs2/fsck/pass1.c:1441
-#, c-format
-msgid "Already processed system inode %lld (0x%llx)\n"
+#: gfs2/fsck/pass1.c:1510
+msgid "gfs1 jindex inode"
msgstr ""
-#: gfs2/fsck/pass1.c:1451
-#, c-format
-msgid "Found invalid inode at block #%llu (0x%llx)\n"
+#: gfs2/fsck/pass1.c:1512
+msgid "gfs1 rindex inode"
msgstr ""
-#: gfs2/fsck/pass1c.c:29
+#: gfs2/fsck/pass1.c:1514
+msgid "gfs1 quota inode"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:1578
+#, c-format
+msgid "Checking metadata in Resource Group #%llu\n"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:1582
+#, c-format
+msgid "rgrp block %lld (0x%llx) is now marked as 'rgrp data'\n"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:1608
+#, c-format
+msgid "Skipping rindex indir block %lld (0x%llx)\n"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:1622
+#, c-format
+msgid "Skipping pass 1 is not a good idea.\n"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:1627
+#, c-format
+msgid "Already processed system inode %lld (0x%llx)\n"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:1655
+#, c-format
+msgid "Deferring GFS1 metadata block #%<PRIu64> (0x%<PRIx64>)\n"
+msgstr ""
+
+#: gfs2/fsck/pass1.c:1665
+#, c-format
+msgid "Found invalid inode at block #%llu (0x%llx)\n"
+msgstr ""
+
+#: gfs2/fsck/pass1c.c:29
#, c-format
msgid "Bad Extended Attribute at block #%llu (0x%llx) removed.\n"
msgstr ""
@@ -1886,7 +2064,7 @@ msgstr ""
msgid "Remove the bad Extended Attribute entry? (y/n) "
msgstr ""
-#: gfs2/fsck/pass1c.c:57 gfs2/fsck/pass1c.c:69
+#: gfs2/fsck/pass1c.c:57 gfs2/fsck/pass1c.c:70
msgid "Bad Extended Attribute not removed.\n"
msgstr ""
@@ -1898,74 +2076,81 @@ msgstr ""
msgid "Bad Extended Attribute removed.\n"
msgstr ""
-#: gfs2/fsck/pass1c.c:82
+#: gfs2/fsck/pass1c.c:83
#, c-format
msgid ""
"Extended attributes indirect block #%llu (0x%llx) for inode #%llu (0x%llx) "
-"out of range...removing\n"
+"is invalid...removing\n"
msgstr ""
-#: gfs2/fsck/pass1c.c:93
+#: gfs2/fsck/pass1c.c:94
#, c-format
msgid ""
"Extended attributes indirect block #%llu (0x%llx) for inode #%llu (0x%llx) "
-"invalid.\n"
+"is invalid.\n"
msgstr ""
-#: gfs2/fsck/pass1c.c:117
+#: gfs2/fsck/pass1c.c:118
#, c-format
-msgid "Extended attributes block for inode #%llu (0x%llx) out of range.\n"
+msgid "Extended attributes block for inode #%llu (0x%llx) is invalid.\n"
msgstr ""
-#: gfs2/fsck/pass1c.c:125
+#: gfs2/fsck/pass1c.c:126
#, c-format
msgid "Extended attributes block for inode #%llu (0x%llx) invalid.\n"
msgstr ""
-#: gfs2/fsck/pass1c.c:150 gfs2/fsck/pass1c.c:166
+#: gfs2/fsck/pass1c.c:151 gfs2/fsck/pass1c.c:167
msgid "EA has name length of zero\n"
msgstr ""
-#: gfs2/fsck/pass1c.c:155
+#: gfs2/fsck/pass1c.c:156
msgid "EA rec length too long\n"
msgstr ""
-#: gfs2/fsck/pass1c.c:161
+#: gfs2/fsck/pass1c.c:162
msgid "last EA has no last entry flag\n"
msgstr ""
-#: gfs2/fsck/pass1c.c:177
+#: gfs2/fsck/pass1c.c:178
#, c-format
msgid "EA (%s) type is invalid (%d > %d).\n"
msgstr ""
-#: gfs2/fsck/pass1c.c:191
+#: gfs2/fsck/pass1c.c:192
#, c-format
msgid "EA (%s) has incorrect number of pointers.\n"
msgstr ""
-#: gfs2/fsck/pass1c.c:192
+#: gfs2/fsck/pass1c.c:193
#, c-format
msgid ""
" Required: %d\n"
" Reported: %d\n"
msgstr ""
-#: gfs2/fsck/pass1c.c:241
+#: gfs2/fsck/pass1c.c:198
+#, c-format
+msgid ""
+" Pointers Required: %d\n"
+" Pointers Reported: %d\n"
+msgstr ""
+
+#: gfs2/fsck/pass1c.c:242
msgid "Looking for inodes containing ea blocks...\n"
msgstr ""
-#: gfs2/fsck/pass1c.c:251
+#: gfs2/fsck/pass1c.c:252
#, c-format
msgid "EA in inode %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass1c.c:258
+#: gfs2/fsck/pass1c.c:259
#, c-format
msgid "Found eattr at %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass2.c:30 gfs2/fsck/pass2.c:88
+#: gfs2/fsck/pass2.c:30
#, c-format
msgid "Unable to find block %llu (0x%llx) in dir_info list\n"
msgstr ""
@@ -1982,31 +2167,35 @@ msgstr ""
msgid "Child %lld (0x%llx) has parent %lld (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass2.c:76
+#: gfs2/fsck/pass2.c:70
+#, c-format
+msgid "Unable to find block %<PRIu64> (0x%<PRIx64>) in dir_info tree\n"
+msgstr ""
+
+#: gfs2/fsck/pass2.c:85
#, c-format
-msgid "Dotdot parent already set for block %llu (0x%llx) -> %llu (0x%llx)\n"
+msgid "Dotdot parent already set for block %llu (0x%llx)-> %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass2.c:157
+#: gfs2/fsck/pass2.c:155
msgid "Invalid block type\n"
msgstr ""
-#: gfs2/fsck/pass2.c:210
+#: gfs2/fsck/pass2.c:263
#, c-format
msgid ""
-"Block # referenced by directory entry %s in inode %lld (0x%llx) is out of "
-"range\n"
+"Block # referenced by directory entry %s in inode %lld (0x%llx) is invalid\n"
msgstr ""
-#: gfs2/fsck/pass2.c:214
+#: gfs2/fsck/pass2.c:267
msgid "Clear directory entry to out of range block? (y/n) "
msgstr ""
-#: gfs2/fsck/pass2.c:218
+#: gfs2/fsck/pass2.c:271
msgid "Directory entry to out of range block remains\n"
msgstr ""
-#: gfs2/fsck/pass2.c:228
+#: gfs2/fsck/pass2.c:281
#, c-format
msgid ""
"Dir entry with bad record or name length\n"
@@ -2014,23 +2203,23 @@ msgid ""
"\tName length = %u\n"
msgstr ""
-#: gfs2/fsck/pass2.c:231
+#: gfs2/fsck/pass2.c:284
msgid "Clear the directory entry? (y/n) "
msgstr ""
-#: gfs2/fsck/pass2.c:232
+#: gfs2/fsck/pass2.c:285
msgid "Directory entry not fixed.\n"
msgstr ""
-#: gfs2/fsck/pass2.c:236
+#: gfs2/fsck/pass2.c:289
msgid "corrupt directory entry"
msgstr ""
-#: gfs2/fsck/pass2.c:238
+#: gfs2/fsck/pass2.c:291
msgid "Bad directory entry deleted.\n"
msgstr ""
-#: gfs2/fsck/pass2.c:244
+#: gfs2/fsck/pass2.c:297
#, c-format
msgid ""
"Dir entry with bad hash or name length\n"
@@ -2038,304 +2227,311 @@ msgid ""
"\tFilename = %s\n"
msgstr ""
-#: gfs2/fsck/pass2.c:248
+#: gfs2/fsck/pass2.c:301
#, c-format
msgid ""
"\tName length found = %u\n"
"\tHash expected = %u (0x%x)\n"
msgstr ""
-#: gfs2/fsck/pass2.c:251
+#: gfs2/fsck/pass2.c:304
#, c-format
msgid "Fix directory hash for %s? (y/n) "
msgstr ""
-#: gfs2/fsck/pass2.c:253
+#: gfs2/fsck/pass2.c:306
#, c-format
msgid "Directory entry hash for %s not fixed.\n"
msgstr ""
-#: gfs2/fsck/pass2.c:260
+#: gfs2/fsck/pass2.c:313
#, c-format
msgid "Directory entry hash for %s fixed.\n"
msgstr ""
-#: gfs2/fsck/pass2.c:270
+#: gfs2/fsck/pass2.c:335
#, c-format
-msgid "Found a bad directory entry: %s\n"
+msgid "Found directory entry '%s' pointing to invalid block %lld (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass2.c:272
+#: gfs2/fsck/pass2.c:340
msgid "Delete inode containing bad blocks? (y/n)"
msgstr ""
-#: gfs2/fsck/pass2.c:273
+#: gfs2/fsck/pass2.c:341
msgid "Entry to inode containing bad blocks remains\n"
msgstr ""
-#: gfs2/fsck/pass2.c:286
+#: gfs2/fsck/pass2.c:359
msgid "bad directory entry"
msgstr ""
-#: gfs2/fsck/pass2.c:290
+#: gfs2/fsck/pass2.c:360
+#, c-format
+msgid "Inode %lld (0x%llx) was deleted.\n"
+msgstr ""
+
+#: gfs2/fsck/pass2.c:366
#, c-format
msgid ""
"Directory entry '%s' referencing inode %llu (0x%llx) in dir inode %llu (0x"
"%llx) block type %d: %s.\n"
msgstr ""
-#: gfs2/fsck/pass2.c:298
+#: gfs2/fsck/pass2.c:374
msgid "was previously marked invalid"
msgstr ""
-#: gfs2/fsck/pass2.c:299
+#: gfs2/fsck/pass2.c:375
msgid "was deleted or is not an inode"
msgstr ""
-#: gfs2/fsck/pass2.c:301
+#: gfs2/fsck/pass2.c:377
msgid "Clear directory entry to non-inode block? (y/n) "
msgstr ""
-#: gfs2/fsck/pass2.c:303
+#: gfs2/fsck/pass2.c:379
msgid "Directory entry to non-inode block remains\n"
msgstr ""
-#: gfs2/fsck/pass2.c:328
+#: gfs2/fsck/pass2.c:404
#, c-format
msgid ""
"Error: directory entry type is incompatible with block type at block %lld (0x"
"%llx) in directory inode %llu (0x%llx).\n"
msgstr ""
-#: gfs2/fsck/pass2.c:335
+#: gfs2/fsck/pass2.c:411
#, c-format
msgid "Directory entry type is %d, block type is %d.\n"
msgstr ""
-#: gfs2/fsck/pass2.c:341
+#: gfs2/fsck/pass2.c:417
#, c-format
msgid ""
"Type '%s' in dir entry (%s, %llu/0x%llx) conflicts with type '%s' in dinode. "
"(Dir entry is stale.)\n"
msgstr ""
-#: gfs2/fsck/pass2.c:347
+#: gfs2/fsck/pass2.c:423
msgid "Clear stale directory entry? (y/n) "
msgstr ""
-#: gfs2/fsck/pass2.c:348
+#: gfs2/fsck/pass2.c:424
msgid "Stale directory entry remains\n"
msgstr ""
-#: gfs2/fsck/pass2.c:362
-msgid "Found . dentry\n"
+#: gfs2/fsck/pass2.c:438
+#, c-format
+msgid "Found . dentry in directory %lld (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass2.c:365
+#: gfs2/fsck/pass2.c:443
#, c-format
msgid "Already found '.' entry in directory %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass2.c:369
+#: gfs2/fsck/pass2.c:447
msgid "Clear duplicate '.' entry? (y/n) "
msgstr ""
-#: gfs2/fsck/pass2.c:370
+#: gfs2/fsck/pass2.c:448
msgid "Duplicate '.' entry remains\n"
msgstr ""
-#: gfs2/fsck/pass2.c:390
+#: gfs2/fsck/pass2.c:468
#, c-format
msgid ""
"'.' entry's value incorrect in directory %llu (0x%llx). Points to %llu (0x"
"%llx) when it should point to %llu (0x%llx).\n"
msgstr ""
-#: gfs2/fsck/pass2.c:400
+#: gfs2/fsck/pass2.c:478
msgid "Remove '.' reference? (y/n) "
msgstr ""
-#: gfs2/fsck/pass2.c:401
+#: gfs2/fsck/pass2.c:479
msgid "Invalid '.' reference remains\n"
msgstr ""
-#: gfs2/fsck/pass2.c:420
-msgid "Found .. dentry\n"
+#: gfs2/fsck/pass2.c:498
+#, c-format
+msgid "Found '..' dentry in directory %lld (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass2.c:422
+#: gfs2/fsck/pass2.c:502
#, c-format
-msgid "Already found '..' entry in directory %llu(0x%llx)\n"
+msgid "Already had a '..' entry in directory %llu(0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass2.c:426
+#: gfs2/fsck/pass2.c:506
msgid "Clear duplicate '..' entry? (y/n) "
msgstr ""
-#: gfs2/fsck/pass2.c:427
+#: gfs2/fsck/pass2.c:507
msgid "Duplicate '..' entry remains\n"
msgstr ""
-#: gfs2/fsck/pass2.c:446
+#: gfs2/fsck/pass2.c:526
#, c-format
msgid ""
"Found '..' entry in directory %llu (0x%llx) pointing to something that's not "
"a directory"
msgstr ""
-#: gfs2/fsck/pass2.c:450
+#: gfs2/fsck/pass2.c:530
msgid "Clear bad '..' directory entry? (y/n) "
msgstr ""
-#: gfs2/fsck/pass2.c:451
+#: gfs2/fsck/pass2.c:531
msgid "Bad '..' directory entry remains\n"
msgstr ""
-#: gfs2/fsck/pass2.c:480
+#: gfs2/fsck/pass2.c:560
#, c-format
msgid "Found non-dir inode dentry pointing to %lld (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass2.c:490
+#: gfs2/fsck/pass2.c:570
#, c-format
msgid "%s: Hard link to block %llu (0x%llx) detected.\n"
msgstr ""
-#: gfs2/fsck/pass2.c:495
+#: gfs2/fsck/pass2.c:575
msgid "Clear hard link to directory? (y/n) "
msgstr ""
-#: gfs2/fsck/pass2.c:498
+#: gfs2/fsck/pass2.c:578
msgid "Hard link to directory remains\n"
msgstr ""
-#: gfs2/fsck/pass2.c:508
+#: gfs2/fsck/pass2.c:588
msgid "valid reference"
msgstr ""
-#: gfs2/fsck/pass2.c:516
+#: gfs2/fsck/pass2.c:596
#, c-format
msgid "Bad directory entry '%s' cleared.\n"
msgstr ""
-#: gfs2/fsck/pass2.c:544
+#: gfs2/fsck/pass2.c:624
#, c-format
msgid "Checking system directory inode '%s'\n"
msgstr ""
-#: gfs2/fsck/pass2.c:573
+#: gfs2/fsck/pass2.c:655
#, c-format
msgid "No '.' entry found for %s directory.\n"
msgstr ""
-#: gfs2/fsck/pass2.c:574 gfs2/fsck/pass2.c:768
+#: gfs2/fsck/pass2.c:656 gfs2/fsck/pass2.c:873
msgid "Is it okay to add '.' entry? (y/n) "
msgstr ""
-#: gfs2/fsck/pass2.c:580
+#: gfs2/fsck/pass2.c:662
msgid "Unable to allocate name string\n"
msgstr ""
-#: gfs2/fsck/pass2.c:586
+#: gfs2/fsck/pass2.c:668
msgid "Unable to zero name string\n"
msgstr ""
-#: gfs2/fsck/pass2.c:591
+#: gfs2/fsck/pass2.c:673
msgid "Adding '.' entry\n"
msgstr ""
-#: gfs2/fsck/pass2.c:603 gfs2/fsck/pass2.c:808
+#: gfs2/fsck/pass2.c:692 gfs2/fsck/pass2.c:920
msgid "The directory was not fixed.\n"
msgstr ""
-#: gfs2/fsck/pass2.c:606
+#: gfs2/fsck/pass2.c:695
#, c-format
msgid "%s inode %llu (0x%llx): Entries is %d - should be %d\n"
msgstr ""
-#: gfs2/fsck/pass2.c:611
+#: gfs2/fsck/pass2.c:700
#, c-format
msgid "Fix entries for %s inode %llu (0x%llx)? (y/n) "
msgstr ""
-#: gfs2/fsck/pass2.c:617
+#: gfs2/fsck/pass2.c:706
msgid "Entries updated\n"
msgstr ""
-#: gfs2/fsck/pass2.c:619
+#: gfs2/fsck/pass2.c:708
#, c-format
msgid "Entries for inode %llu (0x%llx) left out of sync\n"
msgstr ""
-#: gfs2/fsck/pass2.c:682
+#: gfs2/fsck/pass2.c:785
msgid "Checking directory inodes.\n"
msgstr ""
-#: gfs2/fsck/pass2.c:698
+#: gfs2/fsck/pass2.c:801
#, c-format
msgid "Checking directory inode at block %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass2.c:727 gfs2/fsck/pass3.c:125
+#: gfs2/fsck/pass2.c:832 gfs2/fsck/pass3.c:149
#, c-format
msgid ""
"Remove directory entry for bad inode %llu (0x%llx) in %llu (0x%llx)? (y/n)"
msgstr ""
-#: gfs2/fsck/pass2.c:741
+#: gfs2/fsck/pass2.c:846
#, c-format
msgid "Unable to find dentry for %llu (0x%llx) in %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass2.c:749 gfs2/fsck/pass3.c:146
+#: gfs2/fsck/pass2.c:854 gfs2/fsck/pass3.c:170
msgid "Directory entry removed\n"
msgstr ""
-#: gfs2/fsck/pass2.c:751
+#: gfs2/fsck/pass2.c:856
msgid "Directory entry to invalid inode remains.\n"
msgstr ""
-#: gfs2/fsck/pass2.c:752
+#: gfs2/fsck/pass2.c:857
#, c-format
msgid "Directory block %lld (0x%llx) is now marked as 'invalid'\n"
msgstr ""
-#: gfs2/fsck/pass2.c:763
+#: gfs2/fsck/pass2.c:868
#, c-format
msgid "No '.' entry found for directory inode at block %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass2.c:776 gfs2/fsck/pass3.c:38
+#: gfs2/fsck/pass2.c:881 gfs2/fsck/pass3.c:38
msgid "Unable to allocate name\n"
msgstr ""
-#: gfs2/fsck/pass2.c:782 gfs2/fsck/pass3.c:45
+#: gfs2/fsck/pass2.c:887 gfs2/fsck/pass3.c:45
msgid "Unable to zero name\n"
msgstr ""
-#: gfs2/fsck/pass2.c:794 gfs2/fsck/pass3.c:61
+#: gfs2/fsck/pass2.c:906 gfs2/fsck/pass3.c:67
#, c-format
msgid "Directory at %lld (0x%llx)"
msgstr ""
-#: gfs2/fsck/pass2.c:803
+#: gfs2/fsck/pass2.c:915
msgid "\". (itself)\""
msgstr ""
-#: gfs2/fsck/pass2.c:806
+#: gfs2/fsck/pass2.c:918
msgid "The directory was fixed.\n"
msgstr ""
-#: gfs2/fsck/pass2.c:813
+#: gfs2/fsck/pass2.c:925
#, c-format
msgid "Entries is %d - should be %d for inode block %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass2.c:818
+#: gfs2/fsck/pass2.c:930
msgid "Fix the entry count? (y/n) "
msgstr ""
-#: gfs2/fsck/pass2.c:822
+#: gfs2/fsck/pass2.c:934
msgid "The entry count was not fixed.\n"
msgstr ""
@@ -2347,142 +2543,156 @@ msgstr ""
msgid "old \"..\""
msgstr ""
-#: gfs2/fsck/pass3.c:66
+#: gfs2/fsck/pass3.c:72
msgid "new \"..\""
msgstr ""
-#: gfs2/fsck/pass3.c:85
+#: gfs2/fsck/pass3.c:94
+#, c-format
+msgid "Orphaned directory at block %llu (0x%llx) moved to lost+found\n"
+msgstr ""
+
+#: gfs2/fsck/pass3.c:103
#, c-format
msgid ""
"Directory '..' and treewalk connections disagree for inode %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass3.c:88
+#: gfs2/fsck/pass3.c:106
#, c-format
msgid "'..' has %llu (0x%llx), treewalk has %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass3.c:105
+#: gfs2/fsck/pass3.c:122
msgid "Orphaned directory, move to lost+found\n"
msgstr ""
-#: gfs2/fsck/pass3.c:109
+#: gfs2/fsck/pass3.c:126
#, c-format
msgid "Treewalk parent is correct, fixing dotdot -> %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass3.c:120
-msgid ".. parent is valid, but treewalkis bad - reattaching to lost+found"
+#: gfs2/fsck/pass3.c:137
+msgid "Both .. and treewalk parents are directories, going with treewalk...\n"
msgstr ""
-#: gfs2/fsck/pass3.c:139
-#, c-format
-msgid "Unable to find dentry for block %llu (0x%llx) in %llu (0x%llx)\n"
+#: gfs2/fsck/pass3.c:144
+msgid ".. parent is valid, but treewalk is bad - reattaching to lost+found"
msgstr ""
-#: gfs2/fsck/pass3.c:148
+#: gfs2/fsck/pass3.c:155
msgid "Directory entry to invalid inode remains\n"
msgstr ""
-#: gfs2/fsck/pass3.c:150
+#: gfs2/fsck/pass3.c:164
+#, c-format
+msgid "Unable to find dentry for block %llu (0x%llx) in %llu (0x%llx)\n"
+msgstr ""
+
+#: gfs2/fsck/pass3.c:171
msgid "Marking directory unlinked\n"
msgstr ""
-#: gfs2/fsck/pass3.c:155
-msgid ""
-"Both .. and treewalk parents are directories, going with treewalk for "
-"now...\n"
+#: gfs2/fsck/pass3.c:196
+msgid "Marking root inode connected\n"
msgstr ""
-#: gfs2/fsck/pass3.c:168
-#, c-format
-msgid "Orphaned directory at block %llu (0x%llx) moved to lost+found\n"
+#: gfs2/fsck/pass3.c:202
+msgid "Marking GFS1 statfs file inode connected\n"
msgstr ""
-#: gfs2/fsck/pass3.c:194
-msgid "Marking root inode connected\n"
+#: gfs2/fsck/pass3.c:208
+msgid "Marking GFS1 jindex file inode connected\n"
+msgstr ""
+
+#: gfs2/fsck/pass3.c:214
+msgid "Marking GFS1 rindex file inode connected\n"
+msgstr ""
+
+#: gfs2/fsck/pass3.c:220
+msgid "Marking GFS1 quota file inode connected\n"
msgstr ""
-#: gfs2/fsck/pass3.c:199
+#: gfs2/fsck/pass3.c:227
msgid "Marking master directory inode connected\n"
msgstr ""
-#: gfs2/fsck/pass3.c:207
+#: gfs2/fsck/pass3.c:237
msgid "Checking directory linkage.\n"
msgstr ""
-#: gfs2/fsck/pass3.c:220
+#: gfs2/fsck/pass3.c:250
#, c-format
msgid "Directory at block %llu (0x%llx) connected\n"
msgstr ""
-#: gfs2/fsck/pass3.c:228
+#: gfs2/fsck/pass3.c:258
msgid "Found unlinked directory containing bad block\n"
msgstr ""
-#: gfs2/fsck/pass3.c:230
+#: gfs2/fsck/pass3.c:260
msgid "Clear unlinked directory with bad blocks? (y/n) "
msgstr ""
-#: gfs2/fsck/pass3.c:232 gfs2/fsck/pass3.c:260
+#: gfs2/fsck/pass3.c:262 gfs2/fsck/pass3.c:289
#, c-format
msgid "inode %lld (0x%llx) is now marked as free\n"
msgstr ""
-#: gfs2/fsck/pass3.c:246
+#: gfs2/fsck/pass3.c:276
msgid "Unlinked directory with bad block remains\n"
msgstr ""
-#: gfs2/fsck/pass3.c:252
+#: gfs2/fsck/pass3.c:281
msgid "Unlinked block marked as an inode is not an inode\n"
msgstr ""
-#: gfs2/fsck/pass3.c:254
+#: gfs2/fsck/pass3.c:283
msgid "Clear the unlinked block? (y/n) "
msgstr ""
-#: gfs2/fsck/pass3.c:256
+#: gfs2/fsck/pass3.c:285
msgid "The block was not cleared\n"
msgstr ""
-#: gfs2/fsck/pass3.c:270
+#: gfs2/fsck/pass3.c:299
msgid "The block was cleared\n"
msgstr ""
-#: gfs2/fsck/pass3.c:274
+#: gfs2/fsck/pass3.c:303
#, c-format
msgid "Found unlinked directory at block %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass3.c:280
+#: gfs2/fsck/pass3.c:309
msgid "Unlinked directory has zero size.\n"
msgstr ""
-#: gfs2/fsck/pass3.c:282
+#: gfs2/fsck/pass3.c:311
msgid "Remove zero-size unlinked directory? (y/n) "
msgstr ""
-#: gfs2/fsck/pass3.c:285
+#: gfs2/fsck/pass3.c:314
msgid "zero-sized unlinked inode"
msgstr ""
-#: gfs2/fsck/pass3.c:290
+#: gfs2/fsck/pass3.c:319
msgid "Zero-size unlinked directory remains\n"
msgstr ""
-#: gfs2/fsck/pass3.c:294
+#: gfs2/fsck/pass3.c:323
msgid "Add unlinked directory to lost+found? (y/n) "
msgstr ""
-#: gfs2/fsck/pass3.c:301
+#: gfs2/fsck/pass3.c:330
msgid "Directory relinked to lost+found\n"
msgstr ""
-#: gfs2/fsck/pass3.c:303
+#: gfs2/fsck/pass3.c:332
msgid "Unlinked directory remains unlinked\n"
msgstr ""
-#: gfs2/fsck/pass3.c:310
+#: gfs2/fsck/pass3.c:339
#, c-format
msgid "At end of pass3, lost+found entries is %u\n"
msgstr ""
@@ -2501,420 +2711,501 @@ msgstr ""
msgid "osi_tree broken in scan_info_list!!\n"
msgstr ""
-#: gfs2/fsck/pass4.c:62
+#: gfs2/fsck/pass4.c:69
#, c-format
msgid "Found unlinked inode at %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass4.c:67
+#: gfs2/fsck/pass4.c:74
#, c-format
-msgid "Unlinked inode %llu (0x%llx) containsbad blocks\n"
+msgid "Unlinked inode %llu (0x%llx) contains bad blocks\n"
msgstr ""
-#: gfs2/fsck/pass4.c:71
+#: gfs2/fsck/pass4.c:78
msgid "Delete unlinked inode with bad blocks? (y/n) "
msgstr ""
-#: gfs2/fsck/pass4.c:78
+#: gfs2/fsck/pass4.c:85
msgid "bad unlinked"
msgstr ""
-#: gfs2/fsck/pass4.c:83
+#: gfs2/fsck/pass4.c:90
msgid "Unlinked inode with bad blocks not cleared\n"
msgstr ""
-#: gfs2/fsck/pass4.c:92
+#: gfs2/fsck/pass4.c:98
#, c-format
msgid "Unlinked block %lld (0x%llx) marked as inode is not an inode (%d)\n"
msgstr ""
-#: gfs2/fsck/pass4.c:98
+#: gfs2/fsck/pass4.c:104
msgid "Delete unlinked inode? (y/n) "
msgstr ""
-#: gfs2/fsck/pass4.c:103
+#: gfs2/fsck/pass4.c:109
msgid "invalid unlinked"
msgstr ""
-#: gfs2/fsck/pass4.c:106
+#: gfs2/fsck/pass4.c:112
msgid "The inode was deleted\n"
msgstr ""
-#: gfs2/fsck/pass4.c:108
+#: gfs2/fsck/pass4.c:114
msgid "The inode was not deleted\n"
msgstr ""
-#: gfs2/fsck/pass4.c:120
+#: gfs2/fsck/pass4.c:126
msgid "Unlinked inode has zero size\n"
msgstr ""
-#: gfs2/fsck/pass4.c:121
+#: gfs2/fsck/pass4.c:127
msgid "Clear zero-size unlinked inode? (y/n) "
msgstr ""
-#: gfs2/fsck/pass4.c:124
+#: gfs2/fsck/pass4.c:130
msgid "unlinked zero-length"
msgstr ""
-#: gfs2/fsck/pass4.c:131
+#: gfs2/fsck/pass4.c:137
msgid "Add unlinked inode to lost+found? (y/n)"
msgstr ""
-#: gfs2/fsck/pass4.c:142
+#: gfs2/fsck/pass4.c:148
msgid "Unlinked inode left unlinked\n"
msgstr ""
-#: gfs2/fsck/pass4.c:146
+#: gfs2/fsck/pass4.c:152
#, c-format
msgid ""
"Link count inconsistent for inode %llu (0x%llx) has %u but fsck found %u.\n"
msgstr ""
-#: gfs2/fsck/pass4.c:153
+#: gfs2/fsck/pass4.c:159
#, c-format
msgid "Update link count for inode %llu (0x%llx) ? (y/n) "
msgstr ""
-#: gfs2/fsck/pass4.c:161
+#: gfs2/fsck/pass4.c:167
#, c-format
msgid "Link count updated to %d for inode %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/pass4.c:167
+#: gfs2/fsck/pass4.c:173
#, c-format
msgid "Link count for inode %llu (0x%llx) still incorrect\n"
msgstr ""
-#: gfs2/fsck/pass4.c:172
+#: gfs2/fsck/pass4.c:178
#, c-format
msgid "block %llu (0x%llx) has link count %d\n"
msgstr ""
-#: gfs2/fsck/pass4.c:179
+#: gfs2/fsck/pass4.c:185
msgid "Unable to find lost+found inode in inode_hash!!\n"
msgstr ""
-#: gfs2/fsck/pass4.c:201
+#: gfs2/fsck/pass4.c:207
#, c-format
msgid "At beginning of pass4, lost+found entries is %u\n"
msgstr ""
-#: gfs2/fsck/pass4.c:203
+#: gfs2/fsck/pass4.c:209
msgid "Checking inode reference counts.\n"
msgstr ""
-#: gfs2/fsck/pass4.c:210
+#: gfs2/fsck/pass4.c:216
#, c-format
msgid "At end of pass4, lost+found entries is %u\n"
msgstr ""
-#: gfs2/fsck/pass5.c:47
+#: gfs2/fsck/pass5.c:53 gfs2/fsck/pass5.c:97
#, c-format
msgid "Invalid block type %d found\n"
msgstr ""
-#: gfs2/fsck/pass5.c:84
+#: gfs2/fsck/pass5.c:92
#, c-format
-msgid "Unlinked inode block found at block %llu (0x%llx).\n"
+msgid "Invalid freemeta type %d found\n"
msgstr ""
-#: gfs2/fsck/pass5.c:88
-msgid "Do you want to fix the bitmap? (y/n) "
+#: gfs2/fsck/pass5.c:133
+#, c-format
+msgid "Invalid status for block %llu (0x%llx).\n"
msgstr ""
-#: gfs2/fsck/pass5.c:90
+#: gfs2/fsck/pass5.c:145
#, c-format
-msgid "Unlinked block %llu (0x%llx) bitmap not fixed.\n"
+msgid "Unlinked inode found at block %llu (0x%llx).\n"
+msgstr ""
+
+#: gfs2/fsck/pass5.c:149
+msgid "Do you want to reclaim the block? (y/n) "
msgstr ""
-#: gfs2/fsck/pass5.c:96
+#: gfs2/fsck/pass5.c:152
#, c-format
-msgid "Unlinked block %llu (0x%llx) bitmap fixed.\n"
+msgid "Unlinked block %llu (0x%llx) bitmap not fixed.\n"
msgstr ""
-#: gfs2/fsck/pass5.c:101
+#: gfs2/fsck/pass5.c:158
#, c-format
-msgid "Unlinked block found at block %llu (0x%llx), left unchanged.\n"
+msgid "Unlinked block %llu (0x%llx) bitmap fixed.\n"
msgstr ""
-#: gfs2/fsck/pass5.c:110
+#: gfs2/fsck/pass5.c:163
#, c-format
-msgid "Ondisk and fsck bitmaps differ at block %llu (0x%llx) \n"
+msgid "Unlinked block found at block %llu (0x%llx), left unchanged.\n"
msgstr ""
-#: gfs2/fsck/pass5.c:114
+#: gfs2/fsck/pass5.c:172
#, c-format
-msgid "Ondisk status is %u (%s) but FSCK thinks it should be "
+msgid "Block %llu (0x%llx) bitmap says %u (%s) but FSCK saw %u (%s)\n"
msgstr ""
-#: gfs2/fsck/pass5.c:117
+#: gfs2/fsck/pass5.c:179
#, c-format
msgid "Metadata type is %u (%s)\n"
msgstr ""
-#: gfs2/fsck/pass5.c:120
+#: gfs2/fsck/pass5.c:182
#, c-format
msgid "Fix bitmap for block %llu (0x%llx) ? (y/n) "
msgstr ""
-#: gfs2/fsck/pass5.c:124
-msgid "Failed.\n"
+#: gfs2/fsck/pass5.c:186
+msgid "Repair failed.\n"
msgstr ""
-#: gfs2/fsck/pass5.c:126
-msgid "Succeeded.\n"
+#: gfs2/fsck/pass5.c:188
+msgid "Fixed.\n"
msgstr ""
-#: gfs2/fsck/pass5.c:128
+#: gfs2/fsck/pass5.c:190
#, c-format
msgid "Bitmap at block %llu (0x%llx) left inconsistent\n"
msgstr ""
-#: gfs2/fsck/pass5.c:163
+#: gfs2/fsck/pass5.c:228
#, c-format
msgid "RG #%llu (0x%llx) free count inconsistent: is %u should be %u\n"
msgstr ""
-#: gfs2/fsck/pass5.c:172
+#: gfs2/fsck/pass5.c:237
#, c-format
-msgid "Inode count inconsistent: is %u should be %u\n"
+msgid "RG #%llu (0x%llx) Inode count inconsistent: is %u should be %u\n"
+msgstr ""
+
+#: gfs2/fsck/pass5.c:246
+#, c-format
+msgid ""
+"RG #%llu (0x%llx) Used metadata count inconsistent: is %u should be %u\n"
+msgstr ""
+
+#: gfs2/fsck/pass5.c:255
+#, c-format
+msgid ""
+"RG #%llu (0x%llx) Free metadata count inconsistent: is %u should be %u\n"
msgstr ""
-#: gfs2/fsck/pass5.c:181
+#: gfs2/fsck/pass5.c:267
msgid "Internal fsck error - AAHHH!\n"
msgstr ""
-#: gfs2/fsck/pass5.c:185
+#: gfs2/fsck/pass5.c:271
msgid "Update resource group counts? (y/n) "
msgstr ""
-#: gfs2/fsck/pass5.c:186
+#: gfs2/fsck/pass5.c:272
msgid "Resource group counts updated\n"
msgstr ""
-#: gfs2/fsck/pass5.c:190
+#: gfs2/fsck/pass5.c:279
msgid "Resource group counts left inconsistent\n"
msgstr ""
-#: gfs2/fsck/pass5.c:211
+#: gfs2/fsck/pass5.c:301
#, c-format
msgid "Verifying Resource Group #%llu\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:24
+#: gfs2/fsck/rgrepair.c:27
#, c-format
msgid "rindex #%d "
msgstr ""
-#: gfs2/fsck/rgrepair.c:52
+#: gfs2/fsck/rgrepair.c:55
#, c-format
-msgid "Checking for RGs in journal%d.\n"
+msgid "Checking for rgrps in journal%d.\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:61
+#: gfs2/fsck/rgrepair.c:64
#, c-format
-msgid "False RG found at block 0x%llx\n"
+msgid "False rgrp found at block 0x%llx\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:137
+#: gfs2/fsck/rgrepair.c:111
#, c-format
-msgid "RG found at block 0x%llx\n"
+msgid "rgrp found at block 0x%llx\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:158
+#: gfs2/fsck/rgrepair.c:133
msgid "(shortest so far)\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:177
+#: gfs2/fsck/rgrepair.c:149
#, c-format
-msgid "First RG distance: 0x%llx\n"
+msgid "First rgrp distance: 0x%llx\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:178
+#: gfs2/fsck/rgrepair.c:150
#, c-format
-msgid "Distance between RGs: 0x%llx\n"
+msgid "Distance between rgrps: 0x%llx\n"
+msgstr ""
+
+#: gfs2/fsck/rgrepair.c:160
+msgid "rgrp 2 is damaged: getting dist from index: "
msgstr ""
-#: gfs2/fsck/rgrepair.c:188
-msgid "RG 2 is damaged: getting dist from index: "
+#: gfs2/fsck/rgrepair.c:165
+msgid "rgrp index 2 is damaged: extrapolating dist: "
msgstr ""
-#: gfs2/fsck/rgrepair.c:193
-msgid "RG index 2 is damaged: extrapolating dist: "
+#: gfs2/fsck/rgrepair.c:171
+#, c-format
+msgid "Adjusted first rgrp distance: 0x%llx\n"
+msgstr ""
+
+#: gfs2/fsck/rgrepair.c:331
+#, c-format
+msgid "rgrp found at 0x%llx, length=%d, used=%llu, free=%d\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:199
+#: gfs2/fsck/rgrepair.c:365
#, c-format
-msgid "Adjusted first RG distance: 0x%llx\n"
+msgid "rgrp found at 0x%llx, length=%lld\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:210
+#: gfs2/fsck/rgrepair.c:461
#, c-format
msgid "Block 0x%llx\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:217
-msgid "Can't allocate memory for rg repair.\n"
+#: gfs2/fsck/rgrepair.c:468
+msgid "Can't allocate memory for rgrp repair.\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:230
+#: gfs2/fsck/rgrepair.c:478
#, c-format
-msgid "Missing or damaged RG at block %llu (0x%llx)\n"
+msgid "Missing or damaged rgrp at block %llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:234
-msgid "Error: too many bad RGs.\n"
+#: gfs2/fsck/rgrepair.c:483
+msgid ""
+"Error: too many missing or damaged rgrps using this method. Time to try "
+"another method.\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:270 gfs2/fsck/rgrepair.c:302
+#: gfs2/fsck/rgrepair.c:520 gfs2/fsck/rgrepair.c:574
#, c-format
msgid "Prev ri_data set to: %lx.\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:274
+#: gfs2/fsck/rgrepair.c:525
#, c-format
-msgid "%c RG %d at block 0x%llX %s"
+msgid " rgrp %d at block 0x%llx intact"
msgstr ""
-#: gfs2/fsck/rgrepair.c:286
+#: gfs2/fsck/rgrepair.c:528
#, c-format
-msgid " [length 0x%llx]\n"
+msgid "* rgrp %d at block 0x%llx *** DAMAGED ***"
msgstr ""
-#: gfs2/fsck/rgrepair.c:309
-msgid "RG index rebuilt as follows:\n"
+#: gfs2/fsck/rgrepair.c:551 gfs2/fsck/rgrepair.c:554
+#, c-format
+msgid " [length 0x%llx]\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:343 gfs2/mkfs/main_grow.c:317
-#: gfs2/mkfs/main_mkfs.c:601
-#, c-format
-msgid "Geometry error\n"
+#: gfs2/fsck/rgrepair.c:581
+msgid "rindex rebuilt as follows:\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:347 gfs2/mkfs/main_grow.c:333
-#: gfs2/mkfs/main_mkfs.c:618
+#: gfs2/fsck/rgrepair.c:648
#, c-format
-msgid "Device is too small (%llu bytes)\n"
+msgid "rgsize must be: %lld (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:356
+#: gfs2/fsck/rgrepair.c:658
#, c-format
-msgid "fs_total_size = 0x%llX blocks.\n"
+msgid "fs_total_size = 0x%llx blocks.\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:366
+#: gfs2/fsck/rgrepair.c:660
#, c-format
-msgid "L2: number of rgs in the index = %d.\n"
+msgid "L3: number of rgs in the index = %d.\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:384
+#: gfs2/fsck/rgrepair.c:674
#, c-format
-msgid ""
-"Block #%lld (0x%llx) (%d of %d) is neither GFS2_METATYPE_RB nor "
-"GFS2_METATYPE_RG.\n"
+msgid "Block #%lld (0x%llx) (%d of %d) is not %s.\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:389
+#: gfs2/fsck/rgrepair.c:678
msgid "Fix the Resource Group? (y/n)"
msgstr ""
-#: gfs2/fsck/rgrepair.c:390
-msgid "Attempting to repair the RG.\n"
+#: gfs2/fsck/rgrepair.c:679
+msgid "Attempting to repair the rgrp.\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:467
+#: gfs2/fsck/rgrepair.c:766
msgid "The rindex file does not meet our expectations.\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:488
-msgid "Error rebuilding rg list.\n"
+#: gfs2/fsck/rgrepair.c:792 gfs2/fsck/rgrepair.c:804
+msgid "Error rebuilding rgrp list.\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:498
+#: gfs2/fsck/rgrepair.c:814
msgid "WARNING: rindex file is corrupt.\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:503
+#: gfs2/fsck/rgrepair.c:819
#, c-format
msgid "L%d: number of rgs expected = %lld.\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:506
+#: gfs2/fsck/rgrepair.c:822
#, c-format
msgid "L%d: They don't match; either (1) the fs was extended, (2) an odd\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:507
+#: gfs2/fsck/rgrepair.c:824
#, c-format
-msgid "L%d: rg size was used, or (3) we have a corrupt rg index.\n"
+msgid "L%d: rgrp size was used, or (3) we have a corrupt rg index.\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:536
+#: gfs2/fsck/rgrepair.c:850
#, c-format
-msgid "Level %d didn't work. Too many descepencies.\n"
+msgid "%d addr: 0x%llx < 0x%llx * mismatch\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:538
+#: gfs2/fsck/rgrepair.c:857
#, c-format
-msgid "%d out of %d RGs did not match what was expected.\n"
+msgid "%d addr: 0x%llx > 0x%llx * mismatch\n"
msgstr ""
-#: gfs2/fsck/rgrepair.c:563
+#: gfs2/fsck/rgrepair.c:867
+#, c-format
+msgid "%d addr: 0x%llx 0x%llx * has mismatch\n"
+msgstr ""
+
+#: gfs2/fsck/rgrepair.c:878
+#, c-format
+msgid "Level %d didn't work. Too many discrepancies.\n"
+msgstr ""
+
+#: gfs2/fsck/rgrepair.c:880
+#, c-format
+msgid "%d out of %d rgrps (%d percent) did not match what was expected.\n"
+msgstr ""
+
+#: gfs2/fsck/rgrepair.c:905
+#, c-format
+msgid "Entry missing from rindex: 0x%llx\n"
+msgstr ""
+
+#: gfs2/fsck/rgrepair.c:910
+msgid "Out of memory!\n"
+msgstr ""
+
+#: gfs2/fsck/rgrepair.c:929
msgid "Fix the index? (y/n)"
msgstr ""
-#: gfs2/fsck/rgrepair.c:582
-msgid "RG index not fixed.\n"
+#: gfs2/fsck/rgrepair.c:950
+msgid "rindex not fixed.\n"
msgstr ""
-#: gfs2/fsck/util.c:47
+#: gfs2/fsck/util.c:52
#, c-format
msgid ""
"\rChecking %lld%c of %lld%c of file at %lld (0x%llx)- %llu percent "
"complete. \r"
msgstr ""
-#: gfs2/fsck/util.c:78
+#: gfs2/fsck/util.c:84
#, c-format
msgid "\r%llu percent complete.\r"
msgstr ""
-#: gfs2/fsck/util.c:260
+#: gfs2/fsck/util.c:348
msgid "Unable to allocate inode_with_dups structure\n"
msgstr ""
-#: gfs2/fsck/util.c:265
+#: gfs2/fsck/util.c:353
msgid "Unable to zero inode_with_dups structure\n"
msgstr ""
-#: gfs2/fsck/util.c:282
+#: gfs2/fsck/util.c:378
#, c-format
msgid ""
"Found %d reference(s) to block %llu (0x%llx) as %s in inode #%llu (0x%llx)\n"
msgstr ""
-#: gfs2/fsck/util.c:289
+#: gfs2/fsck/util.c:385
msgid "This is the original reference.\n"
msgstr ""
-#: gfs2/fsck/util.c:291
+#: gfs2/fsck/util.c:387
#, c-format
-msgid "This brings the total to: %d\n"
+msgid "This brings the total to: %d duplicate references\n"
msgstr ""
-#: gfs2/fsck/util.c:315
+#: gfs2/fsck/util.c:412
msgid "Unable to allocate dir_info structure\n"
msgstr ""
-#: gfs2/fsck/util.c:319
+#: gfs2/fsck/util.c:416
msgid "Error while zeroing dir_info structure\n"
msgstr ""
+#: gfs2/fsck/util.c:568
+msgid "directory"
+msgstr ""
+
+#: gfs2/fsck/util.c:575
+msgid "file"
+msgstr ""
+
+#: gfs2/fsck/util.c:579
+msgid "symlink"
+msgstr ""
+
+#: gfs2/fsck/util.c:584
+msgid "block device"
+msgstr ""
+
+#: gfs2/fsck/util.c:589
+msgid "character device"
+msgstr ""
+
+#: gfs2/fsck/util.c:594
+msgid "fifo"
+msgstr ""
+
+#: gfs2/fsck/util.c:599
+msgid "socket"
+msgstr ""
+
+#: gfs2/fsck/util.c:604
+msgid "invalid mode"
+msgstr ""
+
#: gfs2/mkfs/main.c:51
msgid "Unknown mode\n"
msgstr ""
-#: gfs2/mkfs/main_grow.c:52
+#: gfs2/mkfs/main_grow.c:65
#, c-format
msgid ""
"Usage:\n"
@@ -2929,76 +3220,82 @@ msgid ""
" -v Verbose, increase verbosity\n"
msgstr ""
-#: gfs2/mkfs/main_grow.c:86
+#: gfs2/mkfs/main_grow.c:99
#, c-format
msgid "(Test mode--File system will not be changed)\n"
msgstr ""
-#: gfs2/mkfs/main_grow.c:195
+#: gfs2/mkfs/main_grow.c:200
#, c-format
msgid "%d new rindex entries.\n"
msgstr ""
-#: gfs2/mkfs/main_grow.c:305 gfs2/mkfs/main_jadd.c:503
+#: gfs2/mkfs/main_grow.c:227
#, c-format
-msgid "Not a valid GFS2 mount point: %s\n"
+msgid "Incorrect rindex size. want %ld(%d RGs), have %ld\n"
+msgstr ""
+
+#: gfs2/mkfs/main_grow.c:237
+msgid "Error writing first new rindex entry;aborted.\n"
+msgstr ""
+
+#: gfs2/mkfs/main_grow.c:247
+msgid "Error writing new rindex entries;aborted.\n"
msgstr ""
-#: gfs2/mkfs/main_grow.c:314 gfs2/mkfs/main_mkfs.c:562
+#: gfs2/mkfs/main_grow.c:263
#, c-format
-msgid "can't open device %s: %s\n"
+msgid "truncating rindex to %ld\n"
+msgstr ""
+
+#: gfs2/mkfs/main_grow.c:358 gfs2/mkfs/main_jadd.c:506
+#: gfs2/mkfs/main_mkfs.c:590
+msgid "Bad constants (1)"
msgstr ""
-#: gfs2/mkfs/main_grow.c:330
+#: gfs2/mkfs/main_grow.c:362
msgid "gfs: Error reading superblock.\n"
msgstr ""
-#: gfs2/mkfs/main_grow.c:339 gfs2/mkfs/main_jadd.c:513
-#, c-format
-msgid "Error mounting GFS2 metafs: %s\n"
+#: gfs2/mkfs/main_grow.c:364
+msgid "cannot grow gfs1 filesystem\n"
msgstr ""
-#: gfs2/mkfs/main_grow.c:348
+#: gfs2/mkfs/main_grow.c:376
msgid "GFS2 rindex not found. Please run gfs2_fsck.\n"
msgstr ""
-#: gfs2/mkfs/main_grow.c:364
+#: gfs2/mkfs/main_grow.c:390
+msgid "Error: No resource groups found.\n"
+msgstr ""
+
+#: gfs2/mkfs/main_grow.c:398
msgid "Error: The device has grown by less than one Resource Group (RG).\n"
msgstr ""
-#: gfs2/mkfs/main_grow.c:366
+#: gfs2/mkfs/main_grow.c:400
#, c-format
msgid "The device grew by %lluMB. "
msgstr ""
-#: gfs2/mkfs/main_grow.c:368
+#: gfs2/mkfs/main_grow.c:402
#, c-format
msgid "One RG is %uMB for this file system.\n"
msgstr ""
-#: gfs2/mkfs/main_grow.c:388
+#: gfs2/mkfs/main_grow.c:423
msgid "gfs2_grow complete.\n"
msgstr ""
-#: gfs2/mkfs/main_jadd.c:38
-#, c-format
-msgid "error doing get flags (%d): %s\n"
-msgstr ""
-
-#: gfs2/mkfs/main_jadd.c:45
-#, c-format
-msgid "error doing set flags (%d): %s\n"
-msgstr ""
-
-#: gfs2/mkfs/main_jadd.c:56
+#: gfs2/mkfs/main_jadd.c:62
msgid "rename2system (1)\n"
msgstr ""
-#: gfs2/mkfs/main_jadd.c:61
+#: gfs2/mkfs/main_jadd.c:67
msgid "rename2system (2)\n"
msgstr ""
-#: gfs2/mkfs/main_jadd.c:73
+#: gfs2/mkfs/main_jadd.c:79
#, c-format
msgid ""
"Usage:\n"
@@ -3016,104 +3313,57 @@ msgid ""
" -V Print program version information, then exit\n"
msgstr ""
-#: gfs2/mkfs/main_jadd.c:139 gfs2/mkfs/main_mkfs.c:176
+#: gfs2/mkfs/main_jadd.c:145 gfs2/mkfs/main_mkfs.c:206 gfs2/tune/main.c:92
#, c-format
-msgid "Unknown option: %c\n"
+msgid "Invalid option: %c\n"
msgstr ""
-#: gfs2/mkfs/main_jadd.c:148
+#: gfs2/mkfs/main_jadd.c:154
msgid "no path specified (try -h for help)\n"
msgstr ""
-#: gfs2/mkfs/main_jadd.c:151
+#: gfs2/mkfs/main_jadd.c:157 gfs2/mkfs/main_mkfs.c:221
#, c-format
-msgid "Unrecognized option: %s\n"
+msgid "Unrecognized argument: %s\n"
msgstr ""
-#: gfs2/mkfs/main_jadd.c:154 gfs2/mkfs/main_mkfs.c:194
+#: gfs2/mkfs/main_jadd.c:160 gfs2/mkfs/main_mkfs.c:224
#, c-format
msgid "Command Line Arguments:\n"
msgstr ""
-#: gfs2/mkfs/main_jadd.c:167 gfs2/mkfs/main_mkfs.c:316
+#: gfs2/mkfs/main_jadd.c:173 gfs2/mkfs/main_mkfs.c:369
msgid "no journals specified\n"
msgstr ""
-#: gfs2/mkfs/main_jadd.c:169 gfs2/mkfs/main_mkfs.c:319
+#: gfs2/mkfs/main_jadd.c:175 gfs2/mkfs/main_mkfs.c:372
msgid "bad journal size\n"
msgstr ""
-#: gfs2/mkfs/main_jadd.c:171 gfs2/mkfs/main_mkfs.c:325
+#: gfs2/mkfs/main_jadd.c:177 gfs2/mkfs/main_mkfs.c:375
msgid "bad quota change size\n"
msgstr ""
-#: gfs2/mkfs/main_jadd.c:191
+#: gfs2/mkfs/main_jadd.c:197
#, c-format
msgid "Filesystem: %s\n"
msgstr ""
-#: gfs2/mkfs/main_jadd.c:192
+#: gfs2/mkfs/main_jadd.c:198
#, c-format
msgid "Old Journals %u\n"
msgstr ""
-#: gfs2/mkfs/main_jadd.c:193
+#: gfs2/mkfs/main_jadd.c:199
#, c-format
msgid "New Journals %u\n"
msgstr ""
-#: gfs2/mkfs/main_jadd.c:215
-#, c-format
-msgid "can't unlink %s: %s\n"
-msgstr ""
-
-#: gfs2/mkfs/main_jadd.c:218
-#, c-format
-msgid "can't create %s: %s\n"
-msgstr ""
-
-#: gfs2/mkfs/main_jadd.c:239 gfs2/mkfs/main_jadd.c:271
-#, c-format
-msgid "write error: %s from %s:%d: offset 0\n"
-msgstr ""
-
-#: gfs2/mkfs/main_jadd.c:251 gfs2/mkfs/main_jadd.c:283
-#: gfs2/mkfs/main_jadd.c:351 gfs2/mkfs/main_jadd.c:472
-#, c-format
-msgid "can't rename2system %s (%d): %s\n"
-msgstr ""
-
-#: gfs2/mkfs/main_jadd.c:310 gfs2/mkfs/main_jadd.c:330
-#: gfs2/mkfs/main_jadd.c:418 gfs2/mkfs/main_jadd.c:448
-#, c-format
-msgid "write error: %s from %s:%d: block %lld (0x%llx)\n"
-msgstr ""
-
-#: gfs2/mkfs/main_jadd.c:342 gfs2/mkfs/main_jadd.c:463
-#, c-format
-msgid "can't fsync: %s\n"
-msgstr ""
-
-#: gfs2/mkfs/main_jadd.c:360
-#, c-format
-msgid "Could not statfs the filesystem %s: %s\n"
-msgstr ""
-
-#: gfs2/mkfs/main_jadd.c:377
-#, c-format
-msgid "Could not find the jindex directory in gfs2meta mount! error: %s\n"
-msgstr ""
-
-#: gfs2/mkfs/main_jadd.c:390
+#: gfs2/mkfs/main_jadd.c:389
msgid "There are no journals for this gfs2 fs! Did you mkfs.gfs2 correctly?\n"
msgstr ""
-#: gfs2/mkfs/main_jadd.c:498
-#, c-format
-msgid "can't open root directory %s: %s\n"
-msgstr ""
-
-#: gfs2/mkfs/main_mkfs.c:49
+#: gfs2/mkfs/main_mkfs.c:52
#, c-format
msgid ""
"Usage:\n"
@@ -3128,242 +3378,234 @@ msgid ""
" -h Print this help, then exit\n"
" -J <MB> Size of journals\n"
" -j <num> Number of journals\n"
+" -K Don't try to discard unused blocks\n"
" -O Don't ask for confirmation\n"
" -p <name> Name of the locking protocol\n"
" -q Don't print anything\n"
" -r <MB> Resource Group Size\n"
" -t <name> Name of the lock table\n"
-" -u <MB> Size of unlinked file\n"
" -V Print program version information, then exit\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:119
+#: gfs2/mkfs/main_mkfs.c:81
+#, c-format
+msgid "Issuing discard ioctl: range: %llu - %llu..."
+msgstr ""
+
+#: gfs2/mkfs/main_mkfs.c:90
+#, c-format
+msgid "Successful.\n"
+msgstr ""
+
+#: gfs2/mkfs/main_mkfs.c:150
#, c-format
msgid "lock protocol name %s is too long\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:134
+#: gfs2/mkfs/main_mkfs.c:165
#, c-format
msgid "lock table name %s is too long\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:172
+#: gfs2/mkfs/main_mkfs.c:202
msgid "More than one device specified (try -h for help)\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:185
-msgid "no device specified (try -h for help)\n"
-msgstr ""
-
-#: gfs2/mkfs/main_mkfs.c:191
+#: gfs2/mkfs/main_mkfs.c:215 gfs2/convert/gfs2_convert.c:1704
+#: gfs2/convert/gfs2_convert.c:1708
#, c-format
-msgid "Unrecognized argument: %s\n"
+msgid "No device specified. Please use '-h' for help\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:204
+#: gfs2/mkfs/main_mkfs.c:234
#, c-format
msgid " rgsize = optimize for best performance\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:233
+#: gfs2/mkfs/main_mkfs.c:262
msgid "locktable error: contains space characters\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:235
+#: gfs2/mkfs/main_mkfs.c:264
msgid "locktable error: contains unprintable characters\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:240
+#: gfs2/mkfs/main_mkfs.c:269
msgid "locktable error: missing colon in the locktable\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:243
+#: gfs2/mkfs/main_mkfs.c:272
msgid "locktable error: missing cluster name\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:245
+#: gfs2/mkfs/main_mkfs.c:274
msgid "locktable error: cluster name too long\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:249 gfs2/mkfs/main_mkfs.c:255
+#: gfs2/mkfs/main_mkfs.c:278 gfs2/mkfs/main_mkfs.c:284
msgid "locktable error: missing filesystem name\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:252
+#: gfs2/mkfs/main_mkfs.c:281 gfs2/tune/super.c:205
+#, c-format
msgid "locktable error: more than one colon present\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:257
+#: gfs2/mkfs/main_mkfs.c:286
msgid "locktable error: filesystem name too long\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:259
+#: gfs2/mkfs/main_mkfs.c:288
#, c-format
msgid "lockproto error: %s unknown\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:275
+#: gfs2/mkfs/main_mkfs.c:306
+#, c-format
+msgid "Are you sure you want to proceed? [y/n]"
+msgstr ""
+
+#: gfs2/mkfs/main_mkfs.c:316
+msgid "aborted\n"
+msgstr ""
+
+#: gfs2/mkfs/main_mkfs.c:336
#, c-format
msgid "block size must be a power of two between 512 and %d\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:279
+#: gfs2/mkfs/main_mkfs.c:340
#, c-format
msgid "Error: Block size %d is less than minimum logical block size (%d).\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:285
+#: gfs2/mkfs/main_mkfs.c:346
#, c-format
msgid ""
"WARNING: Block size %d is inefficient because it is less than the physical "
"block size (%d).\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:291 gfs2/mkfs/main_mkfs.c:443
-#, c-format
-msgid ""
-"\n"
-"Are you sure you want to proceed? [y/n] "
-msgstr ""
-
-#: gfs2/mkfs/main_mkfs.c:293 gfs2/mkfs/main_mkfs.c:445
-msgid "unable to read from stdin\n"
-msgstr ""
-
-#: gfs2/mkfs/main_mkfs.c:296 gfs2/mkfs/main_mkfs.c:448
-msgid "aborted\n"
-msgstr ""
-
-#: gfs2/mkfs/main_mkfs.c:309 gfs2/mkfs/main_mkfs.c:312
+#: gfs2/mkfs/main_mkfs.c:362 gfs2/mkfs/main_mkfs.c:365
msgid "bad resource group size\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:322
-msgid "bad unlinked size\n"
-msgstr ""
-
-#: gfs2/mkfs/main_mkfs.c:410
+#: gfs2/mkfs/main_mkfs.c:460
#, c-format
msgid ""
"Content of file or device unknown (do you have GNU fileutils installed?)\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:414
+#: gfs2/mkfs/main_mkfs.c:464
#, c-format
msgid "It appears to contain: %s"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:439
-#, c-format
-msgid "Error: device %s not found.\n"
-msgstr ""
-
-#: gfs2/mkfs/main_mkfs.c:440
-#, c-format
-msgid "This will destroy any data on %s.\n"
-msgstr ""
-
-#: gfs2/mkfs/main_mkfs.c:465
-#, c-format
-msgid "could not stat device %s\n"
-msgstr ""
-
-#: gfs2/mkfs/main_mkfs.c:467
-#, c-format
-msgid "%s is not a block device\n"
-msgstr ""
-
-#: gfs2/mkfs/main_mkfs.c:473
-#, c-format
-msgid "device %s is busy\n"
-msgstr ""
-
-#: gfs2/mkfs/main_mkfs.c:499
+#: gfs2/mkfs/main_mkfs.c:494
#, c-format
msgid "Expert mode: on\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:501
+#: gfs2/mkfs/main_mkfs.c:496
#, c-format
msgid "Device: %s\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:503
+#: gfs2/mkfs/main_mkfs.c:498
#, c-format
msgid "Blocksize: %u\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:504
+#: gfs2/mkfs/main_mkfs.c:499
#, c-format
msgid "Device Size %.2f GB (%llu blocks)\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:507
+#: gfs2/mkfs/main_mkfs.c:502
#, c-format
msgid "Filesystem Size: %.2f GB (%llu blocks)\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:510
+#: gfs2/mkfs/main_mkfs.c:505
#, c-format
msgid "Journals: %u\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:511
+#: gfs2/mkfs/main_mkfs.c:506
#, c-format
msgid "Resource Groups: %llu\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:513
+#: gfs2/mkfs/main_mkfs.c:508
#, c-format
msgid "Locking Protocol: \"%s\"\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:514
+#: gfs2/mkfs/main_mkfs.c:509
#, c-format
msgid "Lock Table: \"%s\"\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:518
+#: gfs2/mkfs/main_mkfs.c:513
#, c-format
msgid "Writes: %u\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:521
+#: gfs2/mkfs/main_mkfs.c:516
#, c-format
msgid "UUID: %s\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:569
+#: gfs2/mkfs/main_mkfs.c:563
#, c-format
-msgid "Device topology error\n"
+msgid "This will destroy any data on %s.\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:609
+#: gfs2/mkfs/main_mkfs.c:599
#, c-format
msgid "%s: Specified block count is bigger than the actual device.\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:611
+#: gfs2/mkfs/main_mkfs.c:601
#, c-format
msgid "Device Size is %.2f GB (%llu blocks)\n"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:656
-#, c-format
-msgid "can't fsync device (%d): %s\n"
+#: gfs2/mkfs/main_mkfs.c:627
+msgid "Error building jindex"
+msgstr ""
+
+#: gfs2/mkfs/main_mkfs.c:632
+msgid "Error building per-node directory"
+msgstr ""
+
+#: gfs2/mkfs/main_mkfs.c:637
+msgid "Error building inum inode"
msgstr ""
-#: gfs2/mkfs/main_mkfs.c:660
+#: gfs2/mkfs/main_mkfs.c:643
+msgid "Error building statfs inode"
+msgstr ""
+
+#: gfs2/mkfs/main_mkfs.c:649
+msgid "Error building rindex inode"
+msgstr ""
+
+#: gfs2/mkfs/main_mkfs.c:654
+msgid "Error building quota inode"
+msgstr ""
+
+#: gfs2/tune/main.c:99
#, c-format
-msgid "error closing device (%d): %s\n"
+msgid "Incorrect number of arguments\n"
msgstr ""
-#: gfs2/tune/main.c:91
+#: gfs2/tune/main.c:105
#, c-format
-msgid "Invalid option.\n"
+msgid "The -L and -o locktable= options are mutually exclusive\n"
msgstr ""
-#: gfs2/tune/main.c:102
+#: gfs2/tune/main.c:114
#, c-format
msgid "Unable to open device %s\n"
msgstr ""
@@ -3383,19 +3625,14 @@ msgstr ""
msgid "uuid %s has an invalid hex digit '%c' at offset %d.\n"
msgstr ""
-#: gfs2/tune/super.c:99
-#, c-format
-msgid "Error reading from device"
-msgstr ""
-
-#: gfs2/tune/super.c:104
+#: gfs2/tune/super.c:109
#, c-format
msgid "Not a GFS/GFS2 device\n"
msgstr ""
#: gfs2/tune/super.c:127
#, c-format
-msgid "Filesystem volume name: %.*s\n"
+msgid "Filesystem volume name: %s\n"
msgstr ""
#: gfs2/tune/super.c:129
@@ -3430,40 +3667,408 @@ msgstr ""
#: gfs2/tune/super.c:136
#, c-format
-msgid "Lock Protocol: %.*s\n"
+msgid "Lock Protocol: %s\n"
msgstr ""
-#: gfs2/tune/super.c:138
+#: gfs2/tune/super.c:137
#, c-format
-msgid "Lock table: %.*s\n"
+msgid "Lock table: %s\n"
msgstr ""
-#: gfs2/tune/super.c:148
+#: gfs2/tune/super.c:158
#, c-format
-msgid "Unable to write super block\n"
+msgid "UUID can be changed for a GFS2"
msgstr ""
-#: gfs2/tune/super.c:166
+#: gfs2/tune/super.c:159
#, c-format
-msgid "Label too long\n"
+msgid " device only\n"
+msgstr ""
+
+#: gfs2/tune/super.c:173
+#, c-format
+msgid "Lock protocol name too long\n"
msgstr ""
#: gfs2/tune/super.c:179
#, c-format
-msgid "UUID can be changed for a GFS2"
+msgid "Incorrect lock protocol specified\n"
msgstr ""
-#: gfs2/tune/super.c:180
+#: gfs2/tune/super.c:190
#, c-format
-msgid " device only\n"
+msgid "Lock table name too long\n"
msgstr ""
-#: gfs2/tune/super.c:195
+#: gfs2/tune/super.c:197
#, c-format
-msgid "Incorrect lock protocol specified\n"
+msgid "locktable error: mising colon in the locktable\n"
+msgstr ""
+
+#: gfs2/tune/super.c:201
+#, c-format
+msgid "locktable error: fsname too long\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:554
+msgid "Error: Can't allocate memory for indirect block fix\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:561 gfs2/convert/gfs2_convert.c:596
+#: gfs2/convert/gfs2_convert.c:696
+msgid "Error: Can't allocate memory for file conversion.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:589 gfs2/convert/gfs2_convert.c:690
+msgid "Error: Can't allocate memory for indirect block fix.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:836 gfs2/convert/gfs2_convert.c:871
+#: gfs2/convert/gfs2_convert.c:913
+msgid "Error: out of memory.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1007
+msgid "Converting inodes.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1026 gfs2/convert/gfs2_convert.c:1081
+#, c-format
+msgid "\r%llu inodes from %d rgs converted."
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1122
+msgid "Error retrieving directory.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1147 gfs2/convert/gfs2_convert.c:2164
+#, c-format
+msgid "\r%llu directories, %llu dirents fixed."
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1158
+#, c-format
+msgid "Error retrieving inode 0x%llx\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1252
+msgid "fix_one_directory_exhash: error reading directory.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1268
+#, c-format
+msgid "Error reading leaf %llx\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1296
+msgid "Error fixing exhash directory.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1303
+msgid "Error fixing linear directory.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1330
+msgid ""
+"\n"
+"Fixing file and directory information.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1345
+msgid "Error processing directory\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1381 gfs2/convert/gfs2_convert.c:1387
+#, c-format
+msgid "Error retrieving inode at block %llx\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1403
+msgid "Error trying to fix cdpn dentry\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1437
+msgid ""
+"The size reported in the journal index inode is not a\n"
+"\tmultiple of the size of a journal index.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1443
+msgid "Unable to allocate journal index\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1447
+msgid "Unable to zero journal index\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1466
+msgid "An error occurred while reading the journal index file.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1476
+msgid "journal inode size invalid\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1525 gfs2/convert/gfs2_convert.c:1547
+#: gfs2/convert/gfs2_convert.c:1553 gfs2/convert/gfs2_convert.c:1564
+#: gfs2/convert/gfs2_convert.c:1570 gfs2/convert/gfs2_convert.c:2200
+msgid "Error: Bad constants (1)\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1581
+#, c-format
+msgid "Error: %s does not look like a gfs1 filesystem.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1603
+#, c-format
+msgid "Examining file system"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1605
+msgid "Unable to fill in resource group information.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1612
+#, c-format
+msgid "%d rgs found.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1621
+#, c-format
+msgid "This program will convert a gfs1 filesystem to a gfs2 filesystem.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1623
+#, c-format
+msgid ""
+"WARNING: This can't be undone. It is strongly advised that you:\n"
+"\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1625
+#, c-format
+msgid " 1. Back up your entire filesystem first.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1626
+#, c-format
+msgid " 2. Run fsck.gfs2 first to ensure filesystem integrity.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1627
+#, c-format
+msgid " 3. Make sure the filesystem is NOT mounted from any node.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1628
+#, c-format
+msgid " 4. Make sure you have the latest software versions.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1636
+#, c-format
+msgid "gfs2_convert version %s (built %s %s)\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1647
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1648
+#, c-format
+msgid ""
+"%s [-hnqvVy] <device>\n"
+"\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1650
+#, c-format
+msgid "\th - print this help message\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1651
+#, c-format
+msgid "\tn - assume 'no' to all questions\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1652
+#, c-format
+msgid "\tq - quieter output\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1653
+#, c-format
+msgid "\tv - more verbose output\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1654
+#, c-format
+msgid "\tV - print version information\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1655
+#, c-format
+msgid "\ty - assume 'yes' to all questions\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1695
+#, c-format
+msgid "Parameter not understood: %c\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1759
+msgid "Converting journal space to rg space.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1781
+msgid "Error: No suitable rg found for journal.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1784
+#, c-format
+msgid "Addr 0x%llx comes after rg at addr 0x%llx\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1825
+msgid "gfs2_convert: Error converting bitmaps.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1855
+#, c-format
+msgid ""
+"\n"
+"Next Inum: %llu\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1887
+msgid "Removing obsolete GFS1 file system structures.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1927
+#, c-format
+msgid "Writing journal #%d..."
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:1935
+#, c-format
+msgid "done.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2054
+#, c-format
+msgid "Couldn't lookup new quota file: %d\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2089
+#, c-format
+msgid "Convert %s from GFS1 to GFS2? (y/n)"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2100
+#, c-format
+msgid "Bad response '%s', please type 'y' or 'n'.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2130
+#, c-format
+msgid "%s not converted.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2139
+msgid "Converting resource groups."
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2144
+#, c-format
+msgid "%s: Unable to convert resource groups.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2156
+#, c-format
+msgid ""
+"\n"
+"%s: Error renumbering inodes.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2169
+#, c-format
+msgid ""
+"\n"
+"%s: Error fixing directories.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2176
+#, c-format
+msgid "\r%llu cdpn symlinks moved to empty directories."
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2180
+#, c-format
+msgid ""
+"\n"
+"%s: Error fixing cdpn symlinks.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2186
+msgid ""
+"\n"
+"Converting journals.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2189
+#, c-format
+msgid "%s: Error converting journal space.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2211
+#, c-format
+msgid ""
+"Reduced journal size to %u MB to accommodate GFS2 file system structures.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2219
+#, c-format
+msgid "Error: could not build jindex: %s\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2222
+msgid "Building GFS2 file system structures.\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2226
+#, c-format
+msgid "Error building per-node directories: %s\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2233
+#, c-format
+msgid "Error building inum inode: %s\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2241
+#, c-format
+msgid "Error building statfs inode: %s\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2251
+#, c-format
+msgid "Error building rindex inode: %s\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2258
+#, c-format
+msgid "Error building quota inode: %s\n"
+msgstr ""
+
+#: gfs2/convert/gfs2_convert.c:2286
+msgid "Committing changes to disk.\n"
msgstr ""
-#: gfs2/tune/super.c:222
+#: gfs2/convert/gfs2_convert.c:2302
#, c-format
-msgid "Lock table name too big\n"
+msgid "%s: filesystem converted successfully to gfs2.\n"
msgstr ""
12 years, 2 months
gfs2-utils: master - Merge branch 'master' of ssh://git.fedorahosted.org/git/gfs2-utils
by cmaiolino
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: fb6dbd5929d73db81eb24908e17623f10ca7c889
Parent: 879e3d4e38d1c8ed238e1a8cbb14830733e56193 fb5c48467eabeb02da76a62a27be4220f451355b
Author: Carlos Maiolino <cmaiolino(a)redhat.com>
AuthorDate: Mon Jan 30 13:11:56 2012 -0200
Committer: Carlos Maiolino <cmaiolino(a)redhat.com>
CommitterDate: Mon Jan 30 13:11:56 2012 -0200
Merge branch 'master' of ssh://git.fedorahosted.org/git/gfs2-utils
gfs2/edit/hexedit.c | 30 ++----
gfs2/edit/hexedit.h | 1 -
gfs2/fsck/Makefile.am | 4 +-
gfs2/fsck/hash.c | 93 -----------------
gfs2/fsck/hash.h | 7 --
gfs2/fsck/initialize.c | 7 +-
gfs2/fsck/inode_hash.c | 1 -
gfs2/fsck/metawalk.c | 1 -
gfs2/fsck/pass1b.c | 1 +
gfs2/fsck/pass2.c | 13 ++-
gfs2/fsck/util.c | 4 +
gfs2/libgfs2/libgfs2.h | 52 +++++++---
gfs2/libgfs2/meta.c | 239 +++++++++++++++++++++++++-------------------
gfs2/mkfs/gfs2_mkfs.h | 1 -
gfs2/mkfs/main_mkfs.c | 4 +
group/libgfscontrol/main.c | 18 +++-
16 files changed, 222 insertions(+), 254 deletions(-)
12 years, 2 months
gfs2-utils: master - libgfs2: Add flags to metadata description
by Steven Whitehouse
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: fb5c48467eabeb02da76a62a27be4220f451355b
Parent: c4dd20192c46397a9156c478f104299dfabf0060
Author: Steven Whitehouse <swhiteho(a)redhat.com>
AuthorDate: Fri Jan 27 12:14:01 2012 +0000
Committer: Steven Whitehouse <swhiteho(a)redhat.com>
CommitterDate: Fri Jan 27 12:14:01 2012 +0000
libgfs2: Add flags to metadata description
This patch adds a flags field to the metadata description so that we can
mark up the properties of certain fields. This can also be expanded in
due course to accommodate further information if required.
Also, this adds the missing jdata structure into the metadata
description. I think every structure should be there now.
Structures which consisted only of a single metaheader have been given
their own structures so we can use the MH macro and keep the naming
consistent across all the structures.
Signed-off-by: Steven Whitehouse <swhiteho(a)redhat.com>
---
gfs2/libgfs2/libgfs2.h | 52 ++++++++---
gfs2/libgfs2/meta.c | 239 +++++++++++++++++++++++++++---------------------
2 files changed, 173 insertions(+), 118 deletions(-)
diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h
index c304a0c..ce1dae8 100644
--- a/gfs2/libgfs2/libgfs2.h
+++ b/gfs2/libgfs2/libgfs2.h
@@ -84,19 +84,20 @@ enum lgfs2_meta_type {
LGFS2_MT_GFS2_INDIRECT = 8,
LGFS2_MT_GFS_INDIRECT = 9,
LGFS2_MT_DIR_LEAF = 10,
- LGFS2_MT_GFS2_LOG_HEADER = 11,
- LGFS2_MT_GFS_LOG_HEADER = 12,
- LGFS2_MT_GFS2_LOG_DESC = 13,
- LGFS2_MT_GFS_LOG_DESC = 14,
- LGFS2_MT_GFS2_LOG_BLOCK = 15,
- LGFS2_MT_EA_ATTR = 16,
- LGFS2_MT_EA_DATA = 17,
- LGFS2_MT_GFS2_QUOTA_CHANGE = 18,
- LGFS2_MT_DIRENT = 19,
- LGFS2_MT_EA_HEADER = 20,
- LGFS2_MT_GFS2_INUM_RANGE = 21,
- LGFS2_MT_STATFS_CHANGE = 22,
- LGFS2_MT_GFS_JINDEX = 23,
+ LGFS2_MT_JRNL_DATA = 11,
+ LGFS2_MT_GFS2_LOG_HEADER = 12,
+ LGFS2_MT_GFS_LOG_HEADER = 13,
+ LGFS2_MT_GFS2_LOG_DESC = 14,
+ LGFS2_MT_GFS_LOG_DESC = 15,
+ LGFS2_MT_GFS2_LOG_BLOCK = 16,
+ LGFS2_MT_EA_ATTR = 17,
+ LGFS2_MT_EA_DATA = 18,
+ LGFS2_MT_GFS2_QUOTA_CHANGE = 19,
+ LGFS2_MT_DIRENT = 20,
+ LGFS2_MT_EA_HEADER = 21,
+ LGFS2_MT_GFS2_INUM_RANGE = 22,
+ LGFS2_MT_STATFS_CHANGE = 23,
+ LGFS2_MT_GFS_JINDEX = 24,
LGFS2_MT_NR,
};
@@ -110,8 +111,29 @@ struct lgfs2_metafield {
const char *name;
const unsigned offset;
const unsigned length;
- const unsigned reserved:1;
- const unsigned pointer:1;
+ const unsigned flags;
+
+#define LGFS2_MFF_RESERVED 0x00001 /* Field is reserved */
+#define LGFS2_MFF_POINTER 0x00002 /* Field is a pointer to a block */
+#define LGFS2_MFF_ENUM 0x00004 /* Field is an enum */
+#define LGFS2_MFF_MASK 0x00008 /* Field is a bitmask */
+#define LGFS2_MFF_UUID 0x00010 /* Field is a UUID */
+#define LGFS2_MFF_STRING 0x00020 /* Field in an ASCII string */
+#define LGFS2_MFF_UID 0x00040 /* Field is a UID */
+#define LGFS2_MFF_GID 0x00080 /* Field is a GID */
+#define LGFS2_MFF_MODE 0x00100 /* Field is a file mode */
+#define LGFS2_MFF_FSBLOCKS 0x00200 /* Units are fs blocks */
+#define LGFS2_MFF_BYTES 0x00400 /* Units are bytes */
+#define LGFS2_MFF_SHIFT 0x00800 /* Log_{2} quantity */
+#define LGFS2_MFF_CHECK 0x01000 /* Field is a checksum */
+#define LGFS2_MFF_SECS 0x02000 /* Units are seconds */
+#define LGFS2_MFF_NSECS 0x04000 /* Units are nsecs */
+#define LGFS2_MFF_MAJOR 0x08000 /* Major device number */
+#define LGFS2_MFF_MINOR 0x10000 /* Minor device number */
+
+ /* If isenum or ismask are set, these must also be filled in */
+ const struct lgfs2_symbolic *symtab;
+ const unsigned nsyms;
};
struct lgfs2_metadata {
diff --git a/gfs2/libgfs2/meta.c b/gfs2/libgfs2/meta.c
index 64bdf91..65c535e 100644
--- a/gfs2/libgfs2/meta.c
+++ b/gfs2/libgfs2/meta.c
@@ -72,15 +72,15 @@ const unsigned lgfs2_di_flag_size = ARRAY_SIZE(lgfs2_di_flags);
.offset = offsetof(struct STRUCT, f), \
.length = sizeof(((struct STRUCT *)(0))->f), \
__VA_ARGS__ },
-#define FP(f) F(f, .pointer=1)
-#define RF(f) F(f, .reserved=1)
-#define RFP(f) F(f, .pointer=1, .reserved=1)
+#define FP(f) F(f, .flags = LGFS2_MFF_POINTER )
+#define RF(f) F(f, .flags = LGFS2_MFF_RESERVED)
+#define RFP(f) F(f, .flags = LGFS2_MFF_POINTER|LGFS2_MFF_RESERVED)
#define MH(f) F(f.mh_magic) \
- F(f.mh_type) \
+ F(f.mh_type, .flags = LGFS2_MFF_ENUM, .symtab=lgfs2_metatypes, .nsyms=ARRAY_SIZE(lgfs2_metatypes)) \
RF(f.__pad0) \
- F(f.mh_format) \
+ F(f.mh_format, .flags = LGFS2_MFF_ENUM, .symtab=lgfs2_metaformats, .nsyms=ARRAY_SIZE(lgfs2_metaformats)) \
F(f.mh_jid)
#define IN(f) F(f.no_formal_ino) \
@@ -98,17 +98,17 @@ MH(sb_header)
F(sb_fs_format)
F(sb_multihost_format)
RF(__pad0)
-F(sb_bsize)
-F(sb_bsize_shift)
+F(sb_bsize, .flags = LGFS2_MFF_BYTES)
+F(sb_bsize_shift, .flags = LGFS2_MFF_BYTES|LGFS2_MFF_SHIFT)
RF(__pad1)
IN(sb_master_dir)
INR(__pad2)
IN(sb_root_dir)
-F(sb_lockproto)
-F(sb_locktable)
-IN( __pad3)
-IN( __pad4)
-F(sb_uuid)
+F(sb_lockproto, .flags = LGFS2_MFF_STRING)
+F(sb_locktable, .flags = LGFS2_MFF_STRING)
+IN(__pad3)
+IN(__pad4)
+F(sb_uuid, .flags = LGFS2_MFF_UUID)
};
#undef STRUCT
@@ -119,14 +119,14 @@ MH(sb_header)
F(sb_fs_format)
F(sb_multihost_format)
F(sb_flags)
-F(sb_bsize)
-F(sb_bsize_shift)
-F(sb_seg_size)
+F(sb_bsize, .flags = LGFS2_MFF_BYTES)
+F(sb_bsize_shift, .flags = LGFS2_MFF_BYTES|LGFS2_MFF_SHIFT)
+F(sb_seg_size, .flags = LGFS2_MFF_FSBLOCKS)
IN(sb_jindex_di)
IN(sb_rindex_di)
IN(sb_root_di)
-F(sb_lockproto)
-F(sb_locktable)
+F(sb_lockproto, .flags = LGFS2_MFF_STRING)
+F(sb_locktable, .flags = LGFS2_MFF_STRING)
IN(sb_quota_di)
IN(sb_license_di)
RF(sb_reserved)
@@ -137,11 +137,11 @@ RF(sb_reserved)
static const struct lgfs2_metafield gfs2_rindex_fields[] = {
FP(ri_addr)
-F(ri_length)
+F(ri_length, .flags = LGFS2_MFF_FSBLOCKS)
RF(__pad)
FP(ri_data0)
-F(ri_data)
-F(ri_bitbytes)
+F(ri_data, .flags = LGFS2_MFF_FSBLOCKS)
+F(ri_bitbytes, .flags = LGFS2_MFF_BYTES)
F(ri_reserved)
};
@@ -151,8 +151,8 @@ F(ri_reserved)
static const struct lgfs2_metafield gfs2_rgrp_fields[] = {
MH(rg_header)
F(rg_flags)
-F(rg_free)
-F(rg_dinodes)
+F(rg_free, .flags = LGFS2_MFF_FSBLOCKS)
+F(rg_dinodes, .flags = LGFS2_MFF_FSBLOCKS)
RF(__pad)
F(rg_igeneration)
RF(rg_reserved)
@@ -164,24 +164,21 @@ RF(rg_reserved)
static const struct lgfs2_metafield gfs_rgrp_fields[] = {
MH(rg_header)
F(rg_flags)
-F(rg_free)
-F(rg_useddi)
-F(rg_freedi)
+F(rg_free, .flags = LGFS2_MFF_FSBLOCKS)
+F(rg_useddi, .flags = LGFS2_MFF_FSBLOCKS)
+F(rg_freedi, .flags = LGFS2_MFF_FSBLOCKS)
IN(rg_freedi_list)
-F(rg_usedmeta)
-F(rg_freemeta)
+F(rg_usedmeta, .flags = LGFS2_MFF_FSBLOCKS)
+F(rg_freemeta, .flags = LGFS2_MFF_FSBLOCKS)
RF(rg_reserved)
};
#undef STRUCT
-#define STRUCT gfs2_meta_header
+struct gfs2_rgrp_bitmap { struct gfs2_meta_header rb_header; };
+#define STRUCT gfs2_rgrp_bitmap
static const struct lgfs2_metafield gfs2_rgrp_bitmap_fields[] = {
-F(mh_magic)
-F(mh_type)
-RF(__pad0)
-F(mh_format)
-F(mh_jid)
+MH(rb_header)
};
#undef STRUCT
@@ -190,21 +187,21 @@ F(mh_jid)
static const struct lgfs2_metafield gfs2_dinode_fields[] = {
MH(di_header)
IN(di_num)
-F(di_mode)
-F(di_uid)
-F(di_gid)
+F(di_mode, .flags = LGFS2_MFF_MODE)
+F(di_uid, .flags = LGFS2_MFF_UID)
+F(di_gid, .flags = LGFS2_MFF_GID)
F(di_nlink)
-F(di_size)
-F(di_blocks)
-F(di_atime)
-F(di_mtime)
-F(di_ctime)
-F(di_major)
-F(di_minor)
+F(di_size, .flags = LGFS2_MFF_BYTES)
+F(di_blocks, .flags = LGFS2_MFF_FSBLOCKS)
+F(di_atime, .flags = LGFS2_MFF_SECS)
+F(di_mtime, .flags = LGFS2_MFF_SECS)
+F(di_ctime, .flags = LGFS2_MFF_SECS)
+F(di_major, .flags = LGFS2_MFF_MAJOR)
+F(di_minor, .flags = LGFS2_MFF_MINOR)
FP(di_goal_meta)
FP(di_goal_data)
F(di_generation)
-F(di_flags)
+F(di_flags, .flags = LGFS2_MFF_MASK, .symtab=lgfs2_di_flags, .nsyms=ARRAY_SIZE(lgfs2_di_flags))
F(di_payload_format)
RF(__pad1)
F(di_height)
@@ -214,9 +211,9 @@ F(di_depth)
F(di_entries)
INR(__pad4)
FP(di_eattr)
-F(di_atime_nsec)
-F(di_mtime_nsec)
-F(di_ctime_nsec)
+F(di_atime_nsec, .flags = LGFS2_MFF_NSECS)
+F(di_mtime_nsec, .flags = LGFS2_MFF_NSECS)
+F(di_ctime_nsec, .flags = LGFS2_MFF_NSECS)
RF(di_reserved)
};
@@ -226,22 +223,22 @@ RF(di_reserved)
static const struct lgfs2_metafield gfs_dinode_fields[] = {
MH(di_header)
IN(di_num)
-F(di_mode)
-F(di_uid)
-F(di_gid)
+F(di_mode, .flags = LGFS2_MFF_MODE)
+F(di_uid, .flags = LGFS2_MFF_UID)
+F(di_gid, .flags = LGFS2_MFF_GID)
F(di_nlink)
-F(di_size)
-F(di_blocks)
-F(di_atime)
-F(di_mtime)
-F(di_ctime)
-F(di_major)
-F(di_minor)
+F(di_size, .flags = LGFS2_MFF_BYTES)
+F(di_blocks, .flags = LGFS2_MFF_FSBLOCKS)
+F(di_atime, .flags = LGFS2_MFF_SECS)
+F(di_mtime, .flags = LGFS2_MFF_SECS)
+F(di_ctime, .flags = LGFS2_MFF_SECS)
+F(di_major, .flags = LGFS2_MFF_MAJOR)
+F(di_minor, .flags = LGFS2_MFF_MINOR)
FP(di_rgrp)
FP(di_goal_rgrp)
F(di_goal_dblk)
F(di_goal_mblk)
-F(di_flags)
+F(di_flags, .flags = LGFS2_MFF_MASK, .symtab=lgfs2_di_flags, .nsyms=ARRAY_SIZE(lgfs2_di_flags))
F(di_payload_format)
F(di_type)
F(di_height)
@@ -255,14 +252,11 @@ F(di_reserved)
};
#undef STRUCT
-#define STRUCT gfs2_meta_header
+struct gfs2_indirect { struct gfs2_meta_header in_header; };
+#define STRUCT gfs2_indirect
static const struct lgfs2_metafield gfs2_indirect_fields[] = {
-F(mh_magic)
-F(mh_type)
-RF(__pad0)
-F(mh_format)
-F(mh_jid)
+MH(in_header)
};
#undef STRUCT
@@ -286,6 +280,14 @@ RF(lf_reserved)
};
#undef STRUCT
+struct gfs2_jrnl_data { struct gfs2_meta_header jd_header; };
+#define STRUCT gfs2_jrnl_data
+
+static const struct lgfs2_metafield gfs2_jdata_fields[] = {
+MH(jd_header)
+};
+
+#undef STRUCT
#define STRUCT gfs2_log_header
static const struct lgfs2_metafield gfs2_log_header_fields[] = {
@@ -294,7 +296,7 @@ F(lh_sequence)
F(lh_flags)
F(lh_tail)
F(lh_blkno)
-F(lh_hash)
+F(lh_hash, .flags = LGFS2_MFF_CHECK)
};
#undef STRUCT
@@ -317,7 +319,7 @@ RF(lh_reserved)
static const struct lgfs2_metafield gfs2_log_desc_fields[] = {
MH(ld_header)
F(ld_type)
-F(ld_length)
+F(ld_length, .flags = LGFS2_MFF_FSBLOCKS)
F(ld_data1)
F(ld_data2)
RF(ld_reserved)
@@ -329,50 +331,41 @@ RF(ld_reserved)
static const struct lgfs2_metafield gfs_log_desc_fields[] = {
MH(ld_header)
F(ld_type)
-F(ld_length)
+F(ld_length, .flags = LGFS2_MFF_FSBLOCKS)
F(ld_data1)
F(ld_data2)
RF(ld_reserved)
};
#undef STRUCT
-#define STRUCT gfs2_meta_header
+struct gfs2_log_block { struct gfs2_meta_header lb_header; };
+#define STRUCT gfs2_log_block
static const struct lgfs2_metafield gfs2_log_block_fields[] = {
-F(mh_magic)
-F(mh_type)
-RF(__pad0)
-F(mh_format)
-F(mh_jid)
+MH(lb_header)
};
#undef STRUCT
-#define STRUCT gfs2_meta_header
+struct gfs2_ea_attr { struct gfs2_meta_header ea_header; };
+#define STRUCT gfs2_ea_attr
static const struct lgfs2_metafield gfs2_ea_attr_fields[] = {
-F(mh_magic)
-F(mh_type)
-RF(__pad0)
-F(mh_format)
-F(mh_jid)
+MH(ea_header)
};
#undef STRUCT
-#define STRUCT gfs2_meta_header
+struct gfs2_ea_data { struct gfs2_meta_header ed_header; };
+#define STRUCT gfs2_ea_data
static const struct lgfs2_metafield gfs2_ea_data_fields[] = {
-F(mh_magic)
-F(mh_type)
-RF(__pad0)
-F(mh_format)
-F(mh_jid)
+MH(ed_header)
};
#undef STRUCT
#define STRUCT gfs2_quota_change
static const struct lgfs2_metafield gfs2_quota_change_fields[] = {
-F(qc_change)
+F(qc_change, .flags = LGFS2_MFF_FSBLOCKS)
F(qc_flags)
F(qc_id)
};
@@ -382,9 +375,9 @@ F(qc_id)
static const struct lgfs2_metafield gfs2_dirent_fields[] = {
IN(de_inum)
-F(de_hash)
-F(de_rec_len)
-F(de_name_len)
+F(de_hash, .flags = LGFS2_MFF_CHECK)
+F(de_rec_len, .flags = LGFS2_MFF_BYTES)
+F(de_name_len, .flags = LGFS2_MFF_BYTES)
F(de_type)
RF(__pad)
};
@@ -393,9 +386,9 @@ RF(__pad)
#define STRUCT gfs2_ea_header
static const struct lgfs2_metafield gfs2_ea_header_fields[] = {
-F(ea_rec_len)
-F(ea_data_len)
-F(ea_name_len)
+F(ea_rec_len, .flags = LGFS2_MFF_BYTES)
+F(ea_data_len, .flags = LGFS2_MFF_BYTES)
+F(ea_name_len, .flags = LGFS2_MFF_BYTES)
F(ea_type)
F(ea_flags)
F(ea_num_ptrs)
@@ -414,9 +407,9 @@ F(ir_length)
#define STRUCT gfs2_statfs_change
static const struct lgfs2_metafield gfs2_statfs_change_fields[] = {
-F(sc_total)
-F(sc_free)
-F(sc_dinodes)
+F(sc_total, .flags = LGFS2_MFF_FSBLOCKS)
+F(sc_free, .flags = LGFS2_MFF_FSBLOCKS)
+F(sc_dinodes, .flags = LGFS2_MFF_FSBLOCKS)
};
#undef STRUCT
@@ -484,7 +477,7 @@ const struct lgfs2_metadata lgfs2_metadata[] = {
.header = 1,
.mh_type = GFS2_METATYPE_RB,
.mh_format = GFS2_FORMAT_RB,
- .name = "gfs2_metaheader",
+ .name = "gfs2_rgrp_bitmap",
.fields = gfs2_rgrp_bitmap_fields,
.nfields = ARRAY_SIZE(gfs2_rgrp_bitmap_fields),
.size = sizeof(struct gfs2_meta_header),
@@ -514,7 +507,7 @@ const struct lgfs2_metadata lgfs2_metadata[] = {
.header = 1,
.mh_type = GFS2_METATYPE_IN,
.mh_format = GFS2_FORMAT_IN,
- .name = "gfs2_meta_header",
+ .name = "gfs2_indirect",
.fields = gfs2_indirect_fields,
.nfields = ARRAY_SIZE(gfs2_indirect_fields),
.size = sizeof(struct gfs2_meta_header),
@@ -540,6 +533,17 @@ const struct lgfs2_metadata lgfs2_metadata[] = {
.nfields = ARRAY_SIZE(gfs2_leaf_fields),
.size = sizeof(struct gfs2_leaf),
},
+ [LGFS2_MT_JRNL_DATA] = {
+ .gfs1 = 1,
+ .gfs2 = 1,
+ .header = 1,
+ .mh_type = GFS2_METATYPE_JD,
+ .mh_format = GFS2_FORMAT_JD,
+ .name = "gfs2_jdata",
+ .fields = gfs2_jdata_fields,
+ .nfields = ARRAY_SIZE(gfs2_jdata_fields),
+ .size = sizeof(struct gfs2_meta_header),
+ },
[LGFS2_MT_GFS2_LOG_HEADER] = {
.gfs2 = 1,
.header = 1,
@@ -585,7 +589,7 @@ const struct lgfs2_metadata lgfs2_metadata[] = {
.header = 1,
.mh_type = GFS2_METATYPE_LB,
.mh_format = GFS2_FORMAT_LB,
- .name = "gfs2_meta_header",
+ .name = "gfs2_log_block",
.fields = gfs2_log_block_fields,
.nfields = ARRAY_SIZE(gfs2_log_block_fields),
.size = sizeof(struct gfs2_meta_header),
@@ -596,7 +600,7 @@ const struct lgfs2_metadata lgfs2_metadata[] = {
.header = 1,
.mh_type = GFS2_METATYPE_EA,
.mh_format = GFS2_FORMAT_EA,
- .name = "gfs2_meta_header",
+ .name = "gfs2_ea_attr",
.fields = gfs2_ea_attr_fields,
.nfields = ARRAY_SIZE(gfs2_ea_attr_fields),
.size = sizeof(struct gfs2_meta_header),
@@ -607,7 +611,7 @@ const struct lgfs2_metadata lgfs2_metadata[] = {
.header = 1,
.mh_type = GFS2_METATYPE_ED,
.mh_format = GFS2_FORMAT_ED,
- .name = "gfs2_meta_header",
+ .name = "gfs2_ea_data",
.fields = gfs2_ea_data_fields,
.nfields = ARRAY_SIZE(gfs2_ea_data_fields),
.size = sizeof(struct gfs2_meta_header),
@@ -665,6 +669,7 @@ static int check_metadata_sizes(void)
{
unsigned offset;
int i, j;
+ int ret = 0;
for (i = 0; i < lgfs2_metadata_size; i++) {
const struct lgfs2_metadata *m = &lgfs2_metadata[i];
@@ -673,17 +678,44 @@ static int check_metadata_sizes(void)
const struct lgfs2_metafield *f = &m->fields[j];
if (f->offset != offset) {
fprintf(stderr, "%s: %s: offset is %u, expected %u\n", m->name, f->name, f->offset, offset);
- return -1;
+ ret = -1;
}
offset += f->length;
}
if (offset != m->size) {
fprintf(stderr, "%s: size mismatch between struct %u and fields %u\n", m->name, m->size, offset);
- return -1;
+ ret = -1;
}
}
- return 0;
+ return ret;
+}
+
+static int check_symtab(void)
+{
+ int i, j;
+ int ret = 0;
+
+ for (i = 0; i < lgfs2_metadata_size; i++) {
+ const struct lgfs2_metadata *m = &lgfs2_metadata[i];
+ for (j = 0; j < m->nfields; j++) {
+ const struct lgfs2_metafield *f = &m->fields[j];
+ if (f->flags & (LGFS2_MFF_MASK|LGFS2_MFF_ENUM)) {
+ if (f->symtab == NULL) {
+ fprintf(stderr, "%s: Missing symtab for %s\n", m->name, f->name);
+ ret = -1;
+ }
+ }
+ if (f->symtab) {
+ if (!(f->flags & (LGFS2_MFF_MASK|LGFS2_MFF_ENUM))) {
+ fprintf(stderr, "%s: Symtab for non-enum and non-mask field %s\n", m->name, f->name);
+ ret = -1;
+ }
+ }
+ }
+ }
+
+ return ret;
}
int lgfs2_selfcheck(void)
@@ -691,6 +723,7 @@ int lgfs2_selfcheck(void)
int ret = 0;
ret |= check_metadata_sizes();
+ ret |= check_symtab();
return ret;
}
12 years, 3 months
dlm: master - dlm_controld: add stonith calls
by David Teigland
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: fe16e2fea6085b4bc94c1cca0b5a2c021e9aff5c
Parent: c939ac3799a7e5088e2225eabf1d93210fed875c
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Thu Jan 26 12:21:54 2012 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Thu Jan 26 12:21:54 2012 -0600
dlm_controld: add stonith calls
not used yet
Signed-off-by: David Teigland <teigland(a)redhat.com>
---
dlm_controld/cpg.c | 12 ++++++------
dlm_controld/dlm_daemon.h | 1 +
dlm_controld/fence.c | 38 +++++++++++++++-----------------------
3 files changed, 22 insertions(+), 29 deletions(-)
diff --git a/dlm_controld/cpg.c b/dlm_controld/cpg.c
index f490cf5..9a3134a 100644
--- a/dlm_controld/cpg.c
+++ b/dlm_controld/cpg.c
@@ -686,6 +686,11 @@ static int need_fencing(struct lockspace *ls)
return 0;
}
+/* we don't need to ask fenced to initiate fencing; it does
+ so itself when it sees a fence domain member fail. Without
+ fenced we'll probably need to ask another daemon to initiate
+ fencing, then check with it above, like we check libfenced. */
+
static void request_fencing(struct lockspace *ls)
{
struct node *node;
@@ -693,12 +698,7 @@ static void request_fencing(struct lockspace *ls)
list_for_each_entry(node, &ls->node_history, list) {
if (!node->request_fencing)
continue;
-
- /* we don't need to ask fenced to initiate fencing; it does
- so itself when it sees a fence domain member fail. Without
- fenced we'll probably need to ask another daemon to initiate
- fencing, then check with it above, like we check libfenced. */
-
+ fence_request(node->nodeid);
node->request_fencing = 0;
}
}
diff --git a/dlm_controld/dlm_daemon.h b/dlm_controld/dlm_daemon.h
index 497e6e8..3899550 100644
--- a/dlm_controld/dlm_daemon.h
+++ b/dlm_controld/dlm_daemon.h
@@ -348,6 +348,7 @@ void process_cluster_cfg(int ci);
void kick_node_from_cluster(int nodeid);
/* fence.c */
+void fence_request(int nodeid);
int fence_node_time(int nodeid, uint64_t *last_fenced_time);
int fence_in_progress(int *count);
diff --git a/dlm_controld/fence.c b/dlm_controld/fence.c
index 95a8bc1..f91d9de 100644
--- a/dlm_controld/fence.c
+++ b/dlm_controld/fence.c
@@ -7,38 +7,30 @@
*/
#include "dlm_daemon.h"
-//#include "libfenced.h"
+#ifdef STONITH
+#include <pacemaker/crm/stonith-ng.h>
+#endif
-int fence_node_time(int nodeid, uint64_t *last_fenced_time)
+void fence_request(int nodeid)
{
-/*
- struct fenced_node nodeinfo;
+#ifdef STONITH
int rv;
+ rv = stonith_api_kick_cs_helper(nodeid, 300, 1);
+ if (rv)
+ log_error("stonith_api_kick_cs_helper %d error %d", nodeid, rv);
+#endif
+}
- memset(&nodeinfo, 0, sizeof(nodeinfo));
-
- rv = fenced_node_info(nodeid, &nodeinfo);
- if (rv < 0)
- return rv;
-
- *last_fenced_time = nodeinfo.last_fenced_time;
-*/
+int fence_node_time(int nodeid, uint64_t *last_fenced_time)
+{
+#ifdef STONITH
+ *last_fenced_time = stonith_api_time_cs_helper(nodeid, 0);
+#endif
return 0;
}
int fence_in_progress(int *count)
{
-/* struct fenced_domain domain;
- int rv;
-
- memset(&domain, 0, sizeof(domain));
-
- rv = fenced_domain_info(&domain);
- if (rv < 0)
- return rv;
-
- *count = domain.victim_count;
-*/
return 0;
}
12 years, 3 months
dlm: master - dlm_controld: use totem.cluster_name
by David Teigland
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: c939ac3799a7e5088e2225eabf1d93210fed875c
Parent: abb3da4d5c2f2a09d777d7dd520d42b70d16ef15
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Wed Jan 25 11:47:47 2012 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Wed Jan 25 11:47:47 2012 -0600
dlm_controld: use totem.cluster_name
which is now the real location for it
Signed-off-by: David Teigland <teigland(a)redhat.com>
---
dlm_controld/action.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlm_controld/action.c b/dlm_controld/action.c
index ae3f6cd..8aa84a4 100644
--- a/dlm_controld/action.c
+++ b/dlm_controld/action.c
@@ -67,14 +67,14 @@ static int detect_cluster_name(void)
return -1;
}
- rv = cmap_get_string(handle, "cluster.name", &str);
+ rv = cmap_get_string(handle, "totem.cluster_name", &str);
if (rv != CS_OK) {
- log_error("cmap_get_string cluster.name error %d", rv);
+ log_error("cmap_get_string totem.cluster_name error %d", rv);
goto out;
} else
err = 0;
- log_debug("cmap cluster.name = '%s'", str);
+ log_debug("cmap totem.cluster_name = '%s'", str);
strncpy(cluster_name, str, DLM_LOCKSPACE_LEN);
out:
12 years, 3 months
dlm: tag dlm-3.99.0 has been created
by David Teigland
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: abb3da4d5c2f2a09d777d7dd520d42b70d16ef15
Parent: 46ed1ea8abb34772a205064ea57a4e7d1ac99c55
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Tue Jan 24 13:06:48 2012 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Tue Jan 24 13:06:48 2012 -0600
release 3.99.0
Signed-off-by: David Teigland <teigland(a)redhat.com>
---
include/version.cf | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/version.cf b/include/version.cf
index b890cb3..1669bf4 100644
--- a/include/version.cf
+++ b/include/version.cf
@@ -1,6 +1,6 @@
#ifndef _RELEASE_VERSION_CF_
#define _RELEASE_VERSION_CF_
-#define RELEASE_VERSION "3.9.0"
+#define RELEASE_VERSION "3.99.0"
#endif
12 years, 3 months
cluster: RHEL6 - libgfs2: Fix null pointer dereference in linked_leaf_search
by Bob Peterson
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 2552e504f228f2e6dafee9f43666fda871fdb92e
Parent: 5c7611a6579afd3da91845b2c1004768e2833420
Author: Bob Peterson <rpeterso(a)redhat.com>
AuthorDate: Thu Jan 12 15:31:18 2012 -0600
Committer: Bob Peterson <rpeterso(a)redhat.com>
CommitterDate: Fri Jan 20 08:26:28 2012 -0600
libgfs2: Fix null pointer dereference in linked_leaf_search
Fix a null pointer dereference by checking the value of the bh set by
get_first_leaf(). Looking down the call tree the bh is set to NULL when
__bread fails to allocate memory so we can use errno as the return value
here.
rhbz#675723
---
gfs2/fsck/lost_n_found.c | 3 +--
gfs2/libgfs2/fs_ops.c | 2 ++
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/gfs2/fsck/lost_n_found.c b/gfs2/fsck/lost_n_found.c
index 6f09de1..d0e036a 100644
--- a/gfs2/fsck/lost_n_found.c
+++ b/gfs2/fsck/lost_n_found.c
@@ -160,8 +160,7 @@ int add_inode_to_lf(struct gfs2_inode *ip){
lf_dip = createi(sdp->md.rooti, "lost+found",
S_IFDIR | 0700, 0);
if (lf_dip == NULL) {
- log_crit(_("Error %d creating lost+found: %s\n"),
- errno);
+ log_crit(_("Error %d creating lost+found\n"), errno);
exit(FSCK_ERROR);
}
diff --git a/gfs2/libgfs2/fs_ops.c b/gfs2/libgfs2/fs_ops.c
index 4f1774c..330cedd 100644
--- a/gfs2/libgfs2/fs_ops.c
+++ b/gfs2/libgfs2/fs_ops.c
@@ -1514,6 +1514,8 @@ static int linked_leaf_search(struct gfs2_inode *dip, const char *filename,
error = get_first_leaf(dip, lindex, &bh_next);
if (error)
return error;
+ if (bh_next == NULL)
+ return errno;
/* Find the entry */
do{
12 years, 3 months
cluster: RHEL6 - fsck.gfs2: Add return code checks and initializations
by Bob Peterson
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 5c7611a6579afd3da91845b2c1004768e2833420
Parent: 6687f755a482f81f74b78af59fd7b560c7dd1d69
Author: Bob Peterson <rpeterso(a)redhat.com>
AuthorDate: Thu Jan 12 15:29:17 2012 -0600
Committer: Bob Peterson <rpeterso(a)redhat.com>
CommitterDate: Fri Jan 20 08:26:28 2012 -0600
fsck.gfs2: Add return code checks and initializations
This patch fixes several problems detected by the coverity
tool whereby variables could be accessed without being
initialized, and where return codes should be checked and
were not.
rhbz#675723
---
gfs2/fsck/fs_recovery.c | 9 ++++
gfs2/fsck/initialize.c | 107 +++++++++++++++++++++++++++++++++++++---------
gfs2/fsck/lost_n_found.c | 18 ++++++-
gfs2/fsck/pass1.c | 19 ++++++---
gfs2/fsck/pass2.c | 25 ++++++++---
gfs2/fsck/pass3.c | 11 +++-
gfs2/fsck/pass5.c | 17 ++++++--
gfs2/libgfs2/fs_ops.c | 41 ++++++++++++------
gfs2/libgfs2/libgfs2.h | 2 +-
9 files changed, 190 insertions(+), 59 deletions(-)
diff --git a/gfs2/fsck/fs_recovery.c b/gfs2/fsck/fs_recovery.c
index 52303dd..d07a515 100644
--- a/gfs2/fsck/fs_recovery.c
+++ b/gfs2/fsck/fs_recovery.c
@@ -125,6 +125,10 @@ static int buf_lo_scan_elements(struct gfs2_inode *ip, unsigned int start,
(unsigned long long)blkno, (unsigned long long)blkno,
start);
bh_ip = bget(sdp, blkno);
+ if (!bh_ip) {
+ log_err(_("Out of memory when replaying journals.\n"));
+ return FSCK_ERROR;
+ }
memcpy(bh_ip->b_data, bh_log->b_data, sdp->bsize);
check_magic = ((struct gfs2_meta_header *)
@@ -233,6 +237,10 @@ static int databuf_lo_scan_elements(struct gfs2_inode *ip, unsigned int start,
(unsigned long long)blkno, (unsigned long long)blkno,
start);
bh_ip = bget(sdp, blkno);
+ if (!bh_ip) {
+ log_err(_("Out of memory when replaying journals.\n"));
+ return FSCK_ERROR;
+ }
memcpy(bh_ip->b_data, bh_log->b_data, sdp->bsize);
/* Unescape */
@@ -357,6 +365,7 @@ static int fix_journal_seq_no(struct gfs2_inode *ip)
uint32_t extlen;
struct gfs2_buffer_head *bh;
+ memset(&lh, 0, sizeof(lh));
for (blk = 0; blk < jd_blocks; blk++) {
error = get_log_header(ip, blk, &lh);
if (error == 1) /* if not a log header */
diff --git a/gfs2/fsck/initialize.c b/gfs2/fsck/initialize.c
index 6a92992..28fe03d 100644
--- a/gfs2/fsck/initialize.c
+++ b/gfs2/fsck/initialize.c
@@ -352,6 +352,7 @@ static int rebuild_master(struct gfs2_sbd *sdp)
{
struct gfs2_inum inum;
struct gfs2_buffer_head *bh;
+ int err = 0;
log_err(_("The system master directory seems to be destroyed.\n"));
if (!query(_("Okay to rebuild it? (y/n)"))) {
@@ -368,59 +369,109 @@ static int rebuild_master(struct gfs2_sbd *sdp)
if (fix_md.jiinode) {
inum.no_formal_ino = sdp->md.next_inum++;
inum.no_addr = fix_md.jiinode->i_di.di_num.no_addr;
- dir_add(sdp->master_dir, "jindex", 6, &inum,
- IF2DT(S_IFDIR | 0700));
+ err = dir_add(sdp->master_dir, "jindex", 6, &inum,
+ IF2DT(S_IFDIR | 0700));
+ if (err) {
+ log_crit(_("Error %d adding jindex directory\n"), errno);
+ exit(FSCK_ERROR);
+ }
sdp->master_dir->i_di.di_nlink++;
} else {
- build_jindex(sdp);
+ err = build_jindex(sdp);
+ if (err) {
+ log_crit(_("Error %d building jindex\n"), err);
+ exit(FSCK_ERROR);
+ }
}
if (fix_md.pinode) {
inum.no_formal_ino = sdp->md.next_inum++;
inum.no_addr = fix_md.pinode->i_di.di_num.no_addr;
- dir_add(sdp->master_dir, "per_node", 8, &inum,
+ err = dir_add(sdp->master_dir, "per_node", 8, &inum,
IF2DT(S_IFDIR | 0700));
+ if (err) {
+ log_crit(_("Error %d adding per_node directory\n"),
+ errno);
+ exit(FSCK_ERROR);
+ }
sdp->master_dir->i_di.di_nlink++;
} else {
- build_per_node(sdp);
+ err = build_per_node(sdp);
+ if (err) {
+ log_crit(_("Error %d building per_node directory\n"),
+ err);
+ exit(FSCK_ERROR);
+ }
}
if (fix_md.inum) {
inum.no_formal_ino = sdp->md.next_inum++;
inum.no_addr = fix_md.inum->i_di.di_num.no_addr;
- dir_add(sdp->master_dir, "inum", 4, &inum,
+ err = dir_add(sdp->master_dir, "inum", 4, &inum,
IF2DT(S_IFREG | 0600));
+ if (err) {
+ log_crit(_("Error %d adding inum inode\n"), errno);
+ exit(FSCK_ERROR);
+ }
} else {
- build_inum(sdp);
+ err = build_inum(sdp);
+ if (err) {
+ log_crit(_("Error %d building inum inode\n"), err);
+ exit(FSCK_ERROR);
+ }
gfs2_lookupi(sdp->master_dir, "inum", 4, &sdp->md.inum);
}
if (fix_md.statfs) {
inum.no_formal_ino = sdp->md.next_inum++;
inum.no_addr = fix_md.statfs->i_di.di_num.no_addr;
- dir_add(sdp->master_dir, "statfs", 6, &inum,
- IF2DT(S_IFREG | 0600));
+ err = dir_add(sdp->master_dir, "statfs", 6, &inum,
+ IF2DT(S_IFREG | 0600));
+ if (err) {
+ log_crit(_("Error %d adding statfs inode\n"), errno);
+ exit(FSCK_ERROR);
+ }
} else {
- build_statfs(sdp);
+ err = build_statfs(sdp);
+ if (err) {
+ log_crit(_("Error %d building statfs inode\n"), err);
+ exit(FSCK_ERROR);
+ }
gfs2_lookupi(sdp->master_dir, "statfs", 6, &sdp->md.statfs);
}
if (fix_md.riinode) {
inum.no_formal_ino = sdp->md.next_inum++;
inum.no_addr = fix_md.riinode->i_di.di_num.no_addr;
- dir_add(sdp->master_dir, "rindex", 6, &inum,
+ err = dir_add(sdp->master_dir, "rindex", 6, &inum,
IF2DT(S_IFREG | 0600));
+ if (err) {
+ log_crit(_("Error %d adding rindex inode\n"), errno);
+ exit(FSCK_ERROR);
+ }
} else {
- build_rindex(sdp);
+ err = build_rindex(sdp);
+ if (err) {
+ log_crit(_("Error %d building rindex inode\n"), err);
+ exit(FSCK_ERROR);
+ }
}
if (fix_md.qinode) {
inum.no_formal_ino = sdp->md.next_inum++;
inum.no_addr = fix_md.qinode->i_di.di_num.no_addr;
- dir_add(sdp->master_dir, "quota", 5, &inum,
+ err = dir_add(sdp->master_dir, "quota", 5, &inum,
IF2DT(S_IFREG | 0600));
+ if (err) {
+ log_crit(_("Error %d adding quota inode\n"), errno);
+ exit(FSCK_ERROR);
+ }
} else {
- build_quota(sdp);
+ err = build_quota(sdp);
+ if (err) {
+ log_crit(_("Error %d building quota inode\n"), err);
+ exit(FSCK_ERROR);
+ }
}
log_err(_("Master directory rebuilt.\n"));
@@ -590,8 +641,13 @@ static int init_system_inodes(struct gfs2_sbd *sdp)
}
}
/* Read inum entry into buffer */
- gfs2_readi(sdp->md.inum, &inumbuf, 0,
- sdp->md.inum->i_di.di_size);
+ err = gfs2_readi(sdp->md.inum, &inumbuf, 0,
+ sdp->md.inum->i_di.di_size);
+ if (err != sdp->md.inum->i_di.di_size) {
+ log_crit(_("Error %d reading system inum inode. "
+ "Aborting.\n"), err);
+ goto fail;
+ }
/* call gfs2_inum_range_in() to retrieve range */
sdp->md.next_inum = be64_to_cpu(inumbuf);
}
@@ -624,8 +680,14 @@ static int init_system_inodes(struct gfs2_sbd *sdp)
if (sdp->md.statfs->i_di.di_size) {
buf = malloc(sdp->md.statfs->i_di.di_size);
if (buf) {
- gfs2_readi(sdp->md.statfs, buf, 0,
- sdp->md.statfs->i_di.di_size);
+ err = gfs2_readi(sdp->md.statfs, buf, 0,
+ sdp->md.statfs->i_di.di_size);
+ if (err != sdp->md.statfs->i_di.di_size) {
+ log_crit(_("Error %d reading statfs file. "
+ "Aborting.\n"), err);
+ free(buf);
+ goto fail;
+ }
/* call gfs2_inum_range_in() to retrieve range */
gfs2_statfs_change_in(&sc, buf);
free(buf);
@@ -1251,14 +1313,17 @@ static int reconstruct_single_journal(struct gfs2_sbd *sdp, int jnum,
*/
static int reconstruct_journals(struct gfs2_sbd *sdp)
{
- int i;
+ int i, count;
struct gfs_jindex ji;
char buf[sizeof(struct gfs_jindex)];
log_err("Clearing GFS journals (this may take a while)\n");
for (i = 0; i < sdp->md.journals; i++) {
- gfs2_readi(sdp->md.jiinode, buf, i * sizeof(struct gfs_jindex),
- sizeof(struct gfs_jindex));
+ count = gfs2_readi(sdp->md.jiinode, buf,
+ i * sizeof(struct gfs_jindex),
+ sizeof(struct gfs_jindex));
+ if (count != sizeof(struct gfs_jindex))
+ return 0;
gfs_jindex_in(&ji, buf);
if ((i % 2) == 0)
log_err(".");
diff --git a/gfs2/fsck/lost_n_found.c b/gfs2/fsck/lost_n_found.c
index 70a9181..6f09de1 100644
--- a/gfs2/fsck/lost_n_found.c
+++ b/gfs2/fsck/lost_n_found.c
@@ -19,6 +19,7 @@ static void add_dotdot(struct gfs2_inode *ip)
{
struct dir_info *di;
struct gfs2_sbd *sdp = ip->i_sbd;
+ int err;
log_info( _("Adding .. entry to directory %llu (0x%llx) pointing back "
"to lost+found\n"),
@@ -75,8 +76,13 @@ static void add_dotdot(struct gfs2_inode *ip)
log_warn( _("add_inode_to_lf: Unable to remove "
"\"..\" directory entry.\n"));
- dir_add(ip, "..", 2, &(lf_dip->i_di.di_num),
- (sdp->gfs1 ? GFS_FILE_DIR : DT_DIR));
+ err = dir_add(ip, "..", 2, &(lf_dip->i_di.di_num),
+ (sdp->gfs1 ? GFS_FILE_DIR : DT_DIR));
+ if (err) {
+ log_crit(_("Error adding .. directory: %s\n"),
+ strerror(errno));
+ exit(FSCK_ERROR);
+ }
}
static uint64_t find_free_blk(struct gfs2_sbd *sdp)
@@ -133,6 +139,7 @@ int add_inode_to_lf(struct gfs2_inode *ip){
uint64_t lf_blocks;
struct gfs2_sbd *sdp = ip->i_sbd;
struct dir_info *di;
+ int err = 0;
uint32_t mode;
if (!lf_dip) {
@@ -255,8 +262,13 @@ int add_inode_to_lf(struct gfs2_inode *ip){
break;
}
- dir_add(lf_dip, tmp_name, strlen(tmp_name), &(ip->i_di.di_num),
+ err = dir_add(lf_dip, tmp_name, strlen(tmp_name), &(ip->i_di.di_num),
inode_type);
+ if (err) {
+ log_crit(_("Error adding directory %s: %s\n"),
+ tmp_name, strerror(errno));
+ exit(FSCK_ERROR);
+ }
/* If the lf directory had new blocks added we have to mark them
properly in the bitmap so they're not freed. */
if (lf_dip->i_di.di_blocks != lf_blocks)
diff --git a/gfs2/fsck/pass1.c b/gfs2/fsck/pass1.c
index b3ef7d4..52d4082 100644
--- a/gfs2/fsck/pass1.c
+++ b/gfs2/fsck/pass1.c
@@ -1326,7 +1326,7 @@ static int check_system_inode(struct gfs2_sbd *sdp,
{
uint64_t iblock = 0;
struct dir_status ds = {0};
- int error;
+ int error, err = 0;
log_info( _("Checking system inode '%s'\n"), filename);
if (*sysinode) {
@@ -1400,12 +1400,19 @@ static int check_system_inode(struct gfs2_sbd *sdp,
sysdir_fxns.private = &bc;
if ((*sysinode)->i_di.di_flags & GFS2_DIF_EXHASH)
check_metatree(*sysinode, &sysdir_fxns);
- else
- check_linear_dir(*sysinode, (*sysinode)->i_bh,
- &sysdir_fxns);
+ else {
+ err = check_linear_dir(*sysinode, (*sysinode)->i_bh,
+ &sysdir_fxns);
+ /* If we encountered an error in our directory check
+ we should still call handle_ip, but return the
+ error later. */
+ if (err)
+ log_err(_("Error found in %s while checking "
+ "directory entries.\n"), filename);
+ }
}
error = handle_ip(sdp, *sysinode);
- return error;
+ return error ? error : err;
}
static int build_a_journal(struct gfs2_sbd *sdp)
@@ -1537,7 +1544,7 @@ int pass1(struct gfs2_sbd *sdp)
{
struct osi_node *n, *next = NULL;
struct gfs2_buffer_head *bh;
- uint64_t block;
+ uint64_t block = 0;
struct rgrp_tree *rgd;
int first;
uint64_t i;
diff --git a/gfs2/fsck/pass2.c b/gfs2/fsck/pass2.c
index be0e5fe..c772be3 100644
--- a/gfs2/fsck/pass2.c
+++ b/gfs2/fsck/pass2.c
@@ -667,10 +667,15 @@ static int check_system_dir(struct gfs2_inode *sysinode, const char *dirname,
}
memcpy(filename, tmp_name, filename_len);
log_warn( _("Adding '.' entry\n"));
- dir_add(sysinode, filename, filename_len,
- &(sysinode->i_di.di_num),
- (sysinode->i_sbd->gfs1 ?
- GFS_FILE_DIR : DT_DIR));
+ error = dir_add(sysinode, filename, filename_len,
+ &(sysinode->i_di.di_num),
+ (sysinode->i_sbd->gfs1 ?
+ GFS_FILE_DIR : DT_DIR));
+ if (error) {
+ log_err(_("Error adding directory %s: %s\n"),
+ filename, strerror(errno));
+ return -errno;
+ }
if (cur_blks != sysinode->i_di.di_blocks)
reprocess_inode(sysinode, dirname);
/* This system inode is linked to itself via '.' */
@@ -881,9 +886,15 @@ int pass2(struct gfs2_sbd *sdp)
memcpy(filename, tmp_name, filename_len);
cur_blks = ip->i_di.di_blocks;
- dir_add(ip, filename, filename_len,
- &(ip->i_di.di_num),
- (sdp->gfs1 ? GFS_FILE_DIR : DT_DIR));
+ error = dir_add(ip, filename, filename_len,
+ &(ip->i_di.di_num),
+ (sdp->gfs1 ? GFS_FILE_DIR :
+ DT_DIR));
+ if (error) {
+ log_err(_("Error adding directory %s: %s\n"),
+ filename, strerror(errno));
+ return -errno;
+ }
if (cur_blks != ip->i_di.di_blocks) {
char dirname[80];
diff --git a/gfs2/fsck/pass3.c b/gfs2/fsck/pass3.c
index e1accc9..daa1809 100644
--- a/gfs2/fsck/pass3.c
+++ b/gfs2/fsck/pass3.c
@@ -18,7 +18,7 @@ static int attach_dotdot_to(struct gfs2_sbd *sdp, uint64_t newdotdot,
uint64_t olddotdot, uint64_t block)
{
char *filename;
- int filename_len;
+ int filename_len, err;
struct gfs2_inode *ip, *pip;
uint64_t cur_blks;
@@ -52,8 +52,13 @@ static int attach_dotdot_to(struct gfs2_sbd *sdp, uint64_t newdotdot,
else
decr_link_count(olddotdot, block, _("old \"..\""));
cur_blks = ip->i_di.di_blocks;
- dir_add(ip, filename, filename_len, &pip->i_di.di_num,
- (sdp->gfs1 ? GFS_FILE_DIR : DT_DIR));
+ err = dir_add(ip, filename, filename_len, &pip->i_di.di_num,
+ (sdp->gfs1 ? GFS_FILE_DIR : DT_DIR));
+ if (err) {
+ log_err(_("Error adding directory %s: %s\n"),
+ filename, strerror(errno));
+ exit(FSCK_ERROR);
+ }
if (cur_blks != ip->i_di.di_blocks) {
char dirname[80];
diff --git a/gfs2/fsck/pass5.c b/gfs2/fsck/pass5.c
index ea033a0..2540b17 100644
--- a/gfs2/fsck/pass5.c
+++ b/gfs2/fsck/pass5.c
@@ -104,7 +104,8 @@ static int check_block_status(struct gfs2_sbd *sdp, char *buffer,
{
unsigned char *byte, *end;
unsigned int bit;
- unsigned char rg_status, block_status;
+ unsigned char rg_status;
+ int block_status;
uint8_t q;
uint64_t block;
@@ -119,6 +120,7 @@ static int check_block_status(struct gfs2_sbd *sdp, char *buffer,
warm_fuzzy_stuff(block);
if (skip_this_pass || fsck_abort) /* if asked to skip the rest */
return 0;
+
q = block_type(block);
if (sdp->gfs1)
@@ -126,6 +128,12 @@ static int check_block_status(struct gfs2_sbd *sdp, char *buffer,
else
block_status = gfs2_convert_mark(q, count);
+ if (block_status < 0) {
+ log_err( _("Invalid status for block %llu (0x%llx).\n"),
+ (unsigned long long)block,
+ (unsigned long long)block);
+ return block_status;
+ }
/* If one node opens a file and another node deletes it, we
may be left with a block that appears to be "unlinked" in
the bitmap, but nothing links to it. This is a valid case
@@ -204,9 +212,10 @@ static void update_rgrp(struct gfs2_sbd *sdp, struct rgrp_tree *rgp,
bits = &rgp->bits[i];
/* update the bitmaps */
- check_block_status(sdp, rgp->bh[i]->b_data + bits->bi_offset,
- bits->bi_len, &rg_block, rgp->ri.ri_data0,
- count);
+ if (check_block_status(sdp, rgp->bh[i]->b_data +
+ bits->bi_offset, bits->bi_len,
+ &rg_block, rgp->ri.ri_data0, count))
+ return;
if (skip_this_pass || fsck_abort) /* if asked to skip the rest */
return;
}
diff --git a/gfs2/libgfs2/fs_ops.c b/gfs2/libgfs2/fs_ops.c
index 5053c90..4f1774c 100644
--- a/gfs2/libgfs2/fs_ops.c
+++ b/gfs2/libgfs2/fs_ops.c
@@ -723,6 +723,11 @@ int gfs2_dirent_next(struct gfs2_inode *dip, struct gfs2_buffer_head *bh,
return 0;
}
+/**
+ * Allocate a gfs2 dirent
+ * Returns 0 on success, with *dent_out pointing to the new dirent,
+ * or -1 on failure, with errno set
+ */
static int dirent_alloc(struct gfs2_inode *dip, struct gfs2_buffer_head *bh,
int name_len, struct gfs2_dirent **dent_out)
{
@@ -793,7 +798,8 @@ static int dirent_alloc(struct gfs2_inode *dip, struct gfs2_buffer_head *bh,
}
} while (gfs2_dirent_next(dip, bh, &dent) == 0);
- return -ENOSPC;
+ errno = ENOSPC;
+ return -1;
}
void dirent2_del(struct gfs2_inode *dip, struct gfs2_buffer_head *bh,
@@ -1032,8 +1038,6 @@ int gfs2_get_leaf(struct gfs2_inode *dip, uint64_t leaf_no,
int error = 0;
*bhp = bread(dip->i_sbd, leaf_no);
- if (error)
- return error;
error = gfs2_check_meta(*bhp, GFS2_METATYPE_LF);
if(error)
brelse(*bhp);
@@ -1081,7 +1085,7 @@ static int get_next_leaf(struct gfs2_inode *dip,struct gfs2_buffer_head *bh_in,
return 0;
}
-static void dir_e_add(struct gfs2_inode *dip, const char *filename, int len,
+static int dir_e_add(struct gfs2_inode *dip, const char *filename, int len,
struct gfs2_inum *inum, unsigned int type)
{
struct gfs2_buffer_head *bh, *nbh;
@@ -1090,6 +1094,7 @@ static void dir_e_add(struct gfs2_inode *dip, const char *filename, int len,
uint32_t lindex;
uint32_t hash;
uint64_t leaf_no, bn;
+ int err = 0;
hash = gfs2_disk_hash(filename, len);
restart:
@@ -1138,8 +1143,9 @@ restart:
nleaf->lf_depth = leaf->lf_depth;
nleaf->lf_dirent_format = cpu_to_be32(GFS2_FORMAT_DE);
- if (dirent_alloc(dip, nbh, len, &dent))
- die("dir_split_leaf (3)\n");
+ err = dirent_alloc(dip, nbh, len, &dent);
+ if (err)
+ return err;
dip->i_di.di_blocks++;
bmodified(dip->i_bh);
bmodified(bh);
@@ -1159,7 +1165,7 @@ restart:
bmodified(bh);
brelse(bh);
- return;
+ return err;
}
}
@@ -1227,15 +1233,16 @@ static void dir_make_exhash(struct gfs2_inode *dip)
bwrite(dip->i_bh);
}
-static void dir_l_add(struct gfs2_inode *dip, const char *filename, int len,
+static int dir_l_add(struct gfs2_inode *dip, const char *filename, int len,
struct gfs2_inum *inum, unsigned int type)
{
struct gfs2_dirent *dent;
+ int err = 0;
if (dirent_alloc(dip, dip->i_bh, len, &dent)) {
dir_make_exhash(dip);
- dir_e_add(dip, filename, len, inum, type);
- return;
+ err = dir_e_add(dip, filename, len, inum, type);
+ return err;
}
gfs2_inum_out(inum, (char *)&dent->de_inum);
@@ -1244,15 +1251,18 @@ static void dir_l_add(struct gfs2_inode *dip, const char *filename, int len,
dent->de_type = cpu_to_be16(type);
memcpy((char *)(dent + 1), filename, len);
bmodified(dip->i_bh);
+ return err;
}
-void dir_add(struct gfs2_inode *dip, const char *filename, int len,
+int dir_add(struct gfs2_inode *dip, const char *filename, int len,
struct gfs2_inum *inum, unsigned int type)
{
+ int err = 0;
if (dip->i_di.di_flags & GFS2_DIF_EXHASH)
- dir_e_add(dip, filename, len, inum, type);
+ err = dir_e_add(dip, filename, len, inum, type);
else
- dir_l_add(dip, filename, len, inum, type);
+ err = dir_l_add(dip, filename, len, inum, type);
+ return err;
}
static struct gfs2_buffer_head *__init_dinode(struct gfs2_sbd *sdp,
@@ -1350,6 +1360,7 @@ static struct gfs2_inode *__createi(struct gfs2_inode *dip,
struct gfs2_inum inum;
struct gfs2_buffer_head *bh;
struct gfs2_inode *ip;
+ int err = 0;
int is_dir;
gfs2_lookupi(dip, filename, strlen(filename), &ip);
@@ -1362,7 +1373,9 @@ static struct gfs2_inode *__createi(struct gfs2_inode *dip,
inum.no_formal_ino = sdp->md.next_inum++;
inum.no_addr = bn;
- dir_add(dip, filename, strlen(filename), &inum, IF2DT(mode));
+ err = dir_add(dip, filename, strlen(filename), &inum, IF2DT(mode));
+ if (err)
+ return NULL;
if (if_gfs1)
is_dir = (IF2DT(mode) == GFS_FILE_DIR);
diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h
index bb47580..f60654c 100644
--- a/gfs2/libgfs2/libgfs2.h
+++ b/gfs2/libgfs2/libgfs2.h
@@ -385,7 +385,7 @@ extern int dir_search(struct gfs2_inode *dip, const char *filename, int len,
unsigned int *type, struct gfs2_inum *inum);
extern int gfs2_lookupi(struct gfs2_inode *dip, const char *filename, int len,
struct gfs2_inode **ipp);
-extern void dir_add(struct gfs2_inode *dip, const char *filename, int len,
+extern int dir_add(struct gfs2_inode *dip, const char *filename, int len,
struct gfs2_inum *inum, unsigned int type);
extern int gfs2_dirent_del(struct gfs2_inode *dip, const char *filename,
int filename_len);
12 years, 3 months
cluster: RHEL6 - fsck.gfs2: Fix memory leak in initialize.c
by Bob Peterson
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 6687f755a482f81f74b78af59fd7b560c7dd1d69
Parent: 44ccc7c3c3ec6439bbdae51873c5e180fdb72d10
Author: Bob Peterson <rpeterso(a)redhat.com>
AuthorDate: Thu Jan 12 14:31:45 2012 -0600
Committer: Bob Peterson <rpeterso(a)redhat.com>
CommitterDate: Fri Jan 20 08:26:28 2012 -0600
fsck.gfs2: Fix memory leak in initialize.c
This patch fixes a memory leak whereby dinodes were not being freed
under certain conditions.
rhbz#675723
---
gfs2/fsck/initialize.c | 25 ++++++++++++++++---------
1 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/gfs2/fsck/initialize.c b/gfs2/fsck/initialize.c
index 7b47374..6a92992 100644
--- a/gfs2/fsck/initialize.c
+++ b/gfs2/fsck/initialize.c
@@ -777,7 +777,7 @@ static void peruse_system_dinode(struct gfs2_sbd *sdp, struct gfs2_dinode *di,
(sdp->gfs1 && (di->di_flags & GFS2_DIF_JDATA) &&
(di->di_size % sizeof(struct gfs_jindex) == 0))) {
if (fix_md.jiinode || is_journal_copy(ip, bh))
- return;
+ goto out_discard_ip;
log_warn(_("Found system jindex file at: 0x%llx\n"),
di->di_num.no_addr);
fix_md.jiinode = ip;
@@ -786,8 +786,10 @@ static void peruse_system_dinode(struct gfs2_sbd *sdp, struct gfs2_dinode *di,
jindex: master */
gfs2_lookupi(ip, "jindex", 6, &child_ip);
if (child_ip) {
- if (fix_md.jiinode || is_journal_copy(ip, bh))
- return;
+ if (fix_md.jiinode || is_journal_copy(ip, bh)) {
+ inode_put(&child_ip);
+ goto out_discard_ip;
+ }
fix_md.jiinode = child_ip;
sdp->sd_sb.sb_master_dir.no_addr = di->di_num.no_addr;
log_warn(_("Found system master directory at: "
@@ -799,8 +801,9 @@ static void peruse_system_dinode(struct gfs2_sbd *sdp, struct gfs2_dinode *di,
has a statfs_change: per_node, and its .. will be master. */
gfs2_lookupi(ip, "statfs_change0", 14, &child_ip);
if (child_ip) {
+ inode_put(&child_ip);
if (fix_md.pinode || is_journal_copy(ip, bh))
- return;
+ goto out_discard_ip;
log_warn(_("Found system per_node directory at: "
"0x%llx\n"), ip->i_di.di_num.no_addr);
fix_md.pinode = ip;
@@ -816,22 +819,22 @@ static void peruse_system_dinode(struct gfs2_sbd *sdp, struct gfs2_dinode *di,
}
log_debug(_("Unknown system directory at block 0x%llx\n"),
di->di_num.no_addr);
- inode_put(&ip);
+ goto out_discard_ip;
} else if (!sdp->gfs1 && di->di_size == 8) {
if (fix_md.inum || is_journal_copy(ip, bh))
- return;
+ goto out_discard_ip;
fix_md.inum = ip;
log_warn(_("Found system inum file at: 0x%llx\n"),
di->di_num.no_addr);
} else if (di->di_size == 24) {
if (fix_md.statfs || is_journal_copy(ip, bh))
- return;
+ goto out_discard_ip;
fix_md.statfs = ip;
log_warn(_("Found system statfs file at: 0x%llx\n"),
di->di_num.no_addr);
} else if ((di->di_size % 96) == 0) {
if (fix_md.riinode || is_journal_copy(ip, bh))
- return;
+ goto out_discard_ip;
fix_md.riinode = ip;
log_warn(_("Found system rindex file at: 0x%llx\n"),
di->di_num.no_addr);
@@ -839,11 +842,15 @@ static void peruse_system_dinode(struct gfs2_sbd *sdp, struct gfs2_dinode *di,
di->di_num.no_formal_ino >= 12 &&
di->di_num.no_formal_ino <= 100) {
if (is_journal_copy(ip, bh))
- return;
+ goto out_discard_ip;
fix_md.qinode = ip;
log_warn(_("Found system quota file at: 0x%llx\n"),
di->di_num.no_addr);
}
+ return;
+
+out_discard_ip:
+ inode_put(&ip);
}
/**
12 years, 3 months