[Cluster-devel] [PATCH 2/2] gfs2-utils tests: Add a fsck.gfs2 test for rebuilding journals

Andrew Price anprice at redhat.com
Tue Mar 6 10:18:22 UTC 2018


Requires a tweak to gfs2_edit to allow journal dinode fields to be
modified by keyword.

Signed-off-by: Andrew Price <anprice at redhat.com>
---
 gfs2/edit/hexedit.c | 5 +++--
 tests/fsck.at       | 9 +++++++++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/gfs2/edit/hexedit.c b/gfs2/edit/hexedit.c
index 5cdea684..f015828c 100644
--- a/gfs2/edit/hexedit.c
+++ b/gfs2/edit/hexedit.c
@@ -2486,8 +2486,9 @@ static void process_parameters(int argc, char *argv[], int pass)
 		}
 		if (termlines || strchr(argv[i],'/')) /* if print or slash */
 			continue;
-			
-		if (!strncmp(argv[i], "journal", 7) && isdigit(argv[i][7])) {
+
+		if (!strncmp(argv[i], "journal", 7) && isdigit(argv[i][7]) &&
+		    strcmp(argv[i+1], "field")) {
 			int blk = 0;
 
 			if (i < argc - 1 && isdigit(argv[i + 1][0])) {
diff --git a/tests/fsck.at b/tests/fsck.at
index 0dfeac33..39a04d04 100644
--- a/tests/fsck.at
+++ b/tests/fsck.at
@@ -45,3 +45,12 @@ AT_SETUP([Fix bad rindex entry #1])
 AT_KEYWORDS(fsck.gfs2 fsck)
 GFS_NUKERG_CHECK([mkfs.gfs2 -O -p lock_nolock $GFS_TGT], [-i 1])
 AT_CLEANUP
+
+AT_SETUP([Rebuild bad journal])
+AT_KEYWORDS(fsck.gfs2 fsck)
+GFS_TGT_REGEN
+AT_CHECK([mkfs.gfs2 -O -p lock_nolock $GFS_TGT], 0, [ignore], [ignore])
+AT_CHECK([gfs2_edit -p journal0 field di_header.mh_magic 0 $GFS_TGT], 0, [ignore], [ignore])
+AT_CHECK([fsck.gfs2 -y $GFS_TGT], 1, [ignore], [ignore])
+AT_CHECK([fsck.gfs2 -n $GFS_TGT], 0, [ignore], [ignore])
+AT_CLEANUP
-- 
2.14.3




More information about the Cluster-devel mailing list