Gitweb: http://git.fedorahosted.org/git/?p=gfs2-utils.git;a=commitdiff;h=054af0f8049... Commit: 054af0f8049c21a3d9ec6564d61332376faacc75 Parent: fa3b33f80bd23f230e9ed0fdefb183ecf03ec84c Author: Andrew Price anprice@redhat.com AuthorDate: Thu Feb 4 10:09:14 2016 +0000 Committer: Andrew Price anprice@redhat.com CommitterDate: Thu Feb 4 10:09:14 2016 +0000
gfs2_edit: Don't use the global block variable in savemeta.c
Tweak the display functions used by printsavedmeta to accept a bh and use the block number from it. Remove the last uses of 'block' from restore_data.
Signed-off-by: Andrew Price anprice@redhat.com --- gfs2/edit/gfs2hex.c | 32 ++++++++++++++++---------------- gfs2/edit/gfs2hex.h | 2 +- gfs2/edit/hexedit.c | 4 ++-- gfs2/edit/savemeta.c | 18 +++++++----------- 4 files changed, 26 insertions(+), 30 deletions(-)
diff --git a/gfs2/edit/gfs2hex.c b/gfs2/edit/gfs2hex.c index 101a063..4915e5c 100644 --- a/gfs2/edit/gfs2hex.c +++ b/gfs2/edit/gfs2hex.c @@ -455,7 +455,7 @@ static void gfs1_rgrp_print(struct gfs_rgrp *rg) pv(rg, rg_freemeta, "%u", "0x%x"); }
-int display_gfs2(void) +int display_gfs2(struct gfs2_buffer_head *dbh) { struct gfs2_meta_header mh; struct gfs2_rgrp rg; @@ -467,22 +467,22 @@ int display_gfs2(void)
uint32_t magic;
- magic = be32_to_cpu(*(uint32_t *)bh->b_data); + magic = be32_to_cpu(*(uint32_t *)dbh->b_data);
switch (magic) { case GFS2_MAGIC: - gfs2_meta_header_in(&mh, bh); + gfs2_meta_header_in(&mh, dbh); if (mh.mh_type > GFS2_METATYPE_QC) print_gfs2("Unknown metadata type"); else print_gfs2("%s:", block_type_str[mh.mh_type]); eol(0); - + switch (mh.mh_type) { case GFS2_METATYPE_SB: - gfs2_sb_in(&sbd.sd_sb, bh); + gfs2_sb_in(&sbd.sd_sb, dbh); gfs2_sb_print2(&sbd.sd_sb); break;
@@ -490,10 +490,10 @@ int display_gfs2(void) if (sbd.gfs1) { struct gfs_rgrp rg1;
- gfs1_rgrp_in(&rg1, bh); + gfs1_rgrp_in(&rg1, dbh); gfs1_rgrp_print(&rg1); } else { - gfs2_rgrp_in(&rg, bh); + gfs2_rgrp_in(&rg, dbh); gfs2_rgrp_print(&rg); } break; @@ -511,7 +511,7 @@ int display_gfs2(void) break;
case GFS2_METATYPE_LF: - gfs2_leaf_in(&lf, bh); + gfs2_leaf_in(&lf, dbh); gfs2_leaf_print(&lf); break;
@@ -521,33 +521,33 @@ int display_gfs2(void)
case GFS2_METATYPE_LH: if (sbd.gfs1) { - gfs_log_header_in(&lh1, bh); + gfs_log_header_in(&lh1, dbh); gfs_log_header_print(&lh1); } else { - gfs2_log_header_in(&lh, bh); + gfs2_log_header_in(&lh, dbh); gfs2_log_header_print(&lh); } break;
case GFS2_METATYPE_LD: - gfs2_log_descriptor_in(&ld, bh); + gfs2_log_descriptor_in(&ld, dbh); gfs2_log_descriptor_print(&ld); break;
case GFS2_METATYPE_EA: - do_eattr_extended(bh); + do_eattr_extended(dbh); break; - + case GFS2_METATYPE_ED: gfs2_meta_header_print(&mh); break; - + case GFS2_METATYPE_LB: gfs2_meta_header_print(&mh); break;
case GFS2_METATYPE_QC: - gfs2_quota_change_in(&qc, bh); + gfs2_quota_change_in(&qc, dbh); gfs2_quota_change_print(&qc); break;
@@ -555,7 +555,7 @@ int display_gfs2(void) break; } break; - + default: print_gfs2("Unknown block type"); eol(0); diff --git a/gfs2/edit/gfs2hex.h b/gfs2/edit/gfs2hex.h index 1bd83c3..c3efb27 100644 --- a/gfs2/edit/gfs2hex.h +++ b/gfs2/edit/gfs2hex.h @@ -3,7 +3,7 @@
#include "hexedit.h"
-extern int display_gfs2(void); +extern int display_gfs2(struct gfs2_buffer_head *dbh); extern int edit_gfs2(void); extern void do_dinode_extended(struct gfs2_dinode *di, struct gfs2_buffer_head *lbh); diff --git a/gfs2/edit/hexedit.c b/gfs2/edit/hexedit.c index 07f179d..831ca45 100644 --- a/gfs2/edit/hexedit.c +++ b/gfs2/edit/hexedit.c @@ -333,7 +333,7 @@ int display_block_type(struct gfs2_buffer_head *dbh, int from_restore) else if (block == JOURNALS_DUMMY_BLOCK) print_gfs2("Journal Status: "); else - print_gfs2("%"PRId64" (0x%"PRIx64")", block, block); + print_gfs2("%"PRIu64" (0x%"PRIx64")", dbh->b_blocknr, dbh->b_blocknr); if (termlines) { if (edit_row[dmode] == -1) COLORS_NORMAL; @@ -1150,7 +1150,7 @@ int display(int identify_only, int trunc_zeros, uint64_t flagref, flagref, ref_blk); else if (dmode == GFS2_MODE) { /* if structure display */ if (block != JOURNALS_DUMMY_BLOCK) - display_gfs2(); /* display the gfs2 structure */ + display_gfs2(bh); /* display the gfs2 structure */ } else display_extended(); /* display extended blocks */ /* No else here because display_extended can switch back to hex mode */ diff --git a/gfs2/edit/savemeta.c b/gfs2/edit/savemeta.c index e80b425..8510d77 100644 --- a/gfs2/edit/savemeta.c +++ b/gfs2/edit/savemeta.c @@ -27,8 +27,6 @@ #include "hexedit.h" #include "libgfs2.h"
-extern uint64_t block; - #define DFT_SAVE_FILE "/tmp/gfsmeta.XXXXXX" #define MAX_JOURNALS_SAVED 256
@@ -1076,20 +1074,18 @@ static int restore_data(int fd, gzFile gzin_fd, off_t pos, int printonly) }
if (printonly) { - struct gfs2_buffer_head dummy_bh; - dummy_bh.b_data = savedata->buf; - bh = &dummy_bh; - block = savedata->blk; - if (printonly > 1 && printonly == block) { - block_in_mem = block; - display(0, 0, 0, 0); - bh = NULL; + struct gfs2_buffer_head dummy_bh = { + .b_data = savedata->buf, + .b_blocknr = savedata->blk, + }; + if (printonly > 1 && printonly == savedata->blk) { + display_block_type(&dummy_bh, TRUE); + display_gfs2(&dummy_bh); break; } else if (printonly == 1) { print_gfs2("%"PRId64" (l=0x%x): ", blks_saved, savedata->siglen); display_block_type(&dummy_bh, TRUE); } - bh = NULL; } else { warm_fuzzy_stuff(savedata->blk, FALSE); memset(savedata->buf + savedata->siglen, 0, sbd.bsize - savedata->siglen);
cluster-commits@lists.fedorahosted.org