Gitweb:
http://git.fedorahosted.org/git/?p=gfs2-utils.git;a=commitdiff;h=054af0f8...
Commit: 054af0f8049c21a3d9ec6564d61332376faacc75
Parent: fa3b33f80bd23f230e9ed0fdefb183ecf03ec84c
Author: Andrew Price <anprice(a)redhat.com>
AuthorDate: Thu Feb 4 10:09:14 2016 +0000
Committer: Andrew Price <anprice(a)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(a)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);