Gitweb:
http://git.fedorahosted.org/git/?p=gfs2-utils.git;a=commitdiff;h=c6814b82...
Commit: c6814b82a6ea54d5214b29ca9eceb37de5412ea5
Parent: 2ad0448631bdc37a82d6e7db4e48ea48b892716c
Author: Bob Peterson <rpeterso(a)redhat.com>
AuthorDate: Thu Nov 12 12:08:27 2015 -0600
Committer: Bob Peterson <rpeterso(a)redhat.com>
CommitterDate: Thu Nov 12 12:25:33 2015 -0600
gfs2_edit: Log descriptor continuation blocks print wrong info
Log descriptor continuation blocks are printing misleading
information. First, the offset from the start of the journal is
reported incorrectly. Second, it's trying to print the block
types when it shouldn't. The faulty output looks like this:
0x40e9 (j+4093000): Log descriptor continuation block
0x48202b none 0x481e2d none 0x481c2f none 0x481a31
none
In practice, these are used to continue the job of "revoke" log
descriptors, which have no blocks that follow, so it should not
try to report the types of the blocks that follow.
This patch fixes the journal offset calculation and skips the
reporting of the block types that follow, so the output looks
is given correctly as:
0x40e9 (j+4093): Log descriptor continuation block
0x48202b 0x481e2d 0x481c2f 0x481a31
---
gfs2/edit/journal.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/gfs2/edit/journal.c b/gfs2/edit/journal.c
index 15e02de..80c8738 100644
--- a/gfs2/edit/journal.c
+++ b/gfs2/edit/journal.c
@@ -610,7 +610,8 @@ void dump_journal(const char *journal, int tblk)
} else if ((ld_blocks > 0) &&
(sbd.gfs1 || block_type == GFS2_METATYPE_LB)) {
print_gfs2("0x%"PRIx64" (j+%4"PRIx64"): Log descriptor"
- " continuation block", abs_block, jb);
+ " continuation block", abs_block,
+ ((jb + wrappt) % j_size) / sbd.bsize);
eol(0);
print_gfs2(" ");
ld_blocks -= print_ld_blks((uint64_t *)dummy_bh.b_data +
@@ -619,7 +620,7 @@ void dump_journal(const char *journal, int tblk)
(dummy_bh.b_data +
sbd.bsize), start_line,
tblk, &tblk_off, 0, rgd,
- 0, 1, NULL, 1);
+ 0, 1, NULL, 0);
} else if (block_type == 0) {
continue;
}