Blob Blame History Raw
commit 979c86c6e76aa6a879c2a163f8d20653a4a759da
Author: Andrew Price <anprice@redhat.com>
Date:   Fri Jan 31 06:30:00 2014 -0600

    gfs2_edit: Convert fssize to bytes before reporting fs size
    
    gfs2_edit savemeta wasn't converting sbd.fssize to bytes before converting it
    to a human-friendly number. This patch adds that multiplier along with a sanity
    test for savemeta/restoremeta.
    
    Resolves: rhbz#1059443
    
    Signed-off-by: Andrew Price <anprice@redhat.com>

diff --git a/gfs2/edit/savemeta.c b/gfs2/edit/savemeta.c
index 986fdbe..b4c85d6 100644
--- a/gfs2/edit/savemeta.c
+++ b/gfs2/edit/savemeta.c
@@ -736,7 +736,7 @@ void savemeta(char *out_fn, int saveoption, int gziplevel)
 		gfs1_ri_update(&sbd, 0, &rgcount, 0);
 	else
 		ri_update(&sbd, 0, &rgcount, &sane);
-	printf("Done. File system size: %s\n\n", anthropomorphize(sbd.fssize));
+	printf("Done. File system size: %s\n\n", anthropomorphize(sbd.fssize * sbd.bsize));
 	fflush(stdout);
 
 	get_journal_inode_blocks();
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 616a44e..5f02d3a 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -41,6 +41,7 @@ TESTSUITE_AT = \
 	testsuite.at \
 	mkfs.at \
 	fsck.at \
+	edit.at \
 	libgfs2.at
 
 TESTSUITE = $(srcdir)/testsuite
diff --git a/tests/edit.at b/tests/edit.at
new file mode 100644
index 0000000..014d118
--- /dev/null
+++ b/tests/edit.at
@@ -0,0 +1,15 @@
+AT_TESTED([gfs2_edit])
+AT_BANNER([gfs2_edit tests])
+
+AT_SETUP([Savemeta/restoremeta, defaults])
+GFS_TGT_REGEN
+AT_CHECK([$GFS_MKFS -p lock_nolock $GFS_TGT $(($(gfs_max_blocks 4096)/2))], 0, [ignore], [ignore])
+AT_CHECK([gfs2_edit savemeta $GFS_TGT test.meta > savemeta.log], 0, [ignore], [ignore])
+AT_CHECK([head -2 savemeta.log], 0, [There are 2621440 blocks of 4096 bytes in the destination device.
+Reading resource groups...Done. File system size: 4.1023G
+], [ignore])
+GFS_TGT_REGEN
+AT_CHECK([gfs2_edit restoremeta test.meta $GFS_TGT], 0, [ignore], [ignore])
+AT_CHECK([fsck.gfs2 -n $GFS_TGT], 0, [ignore], [ignore])
+
+AT_CLEANUP
diff --git a/tests/testsuite.at b/tests/testsuite.at
index fc90879..fe781a7 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -22,4 +22,5 @@ AT_COLOR_TESTS
 
 m4_include([mkfs.at])
 m4_include([fsck.at])
+m4_include([edit.at])
 m4_include([libgfs2.at])