gfs2_edit: Log descriptor continuation blocks print wrong info
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH 1/1 gfs2_edit: Log descriptor continuation blocks print wrong info
Hi,
This patch fixes a couple minor annoyances wrt the printing of journal continuation blocks.
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 +3 -2
@@ -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 ; }
PATCH 1/1 gfs2_edit: Log descriptor continuation blocks print wrong info
Quoted 17 lines · Bob Peterson
Hi,
This patch fixes a couple minor annoyances wrt the printing of journal continuation blocks.
gfs2_edit: Log descriptor continuation blocks print wrong infoLog 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 block0x48202b none 0x481e2d none 0x481c2f none 0x481a31 noneIn 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.
Quoted 7 lines
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 block0x48202b 0x481e2d 0x481c2f 0x481a31Signed-off-by Bob Peterson <[email protected]>
Looks good to me.
Thanks,
Andy
Quoted 25 lines
---
gfs2/edit/journal.c +3
-2@@ -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 ; }