This is an automated email from the git hooks/post-receive script.
andyp pushed a commit to branch master
in repository gfs2-utils.
commit 9fe2dfa29ec515577aa6e9cca91997a0dc05852e
Author: Andrew Price <anprice(a)redhat.com>
AuthorDate: Mon May 10 09:35:36 2021 +0100
gfs2_edit: Clean up display_gfs2()
Now that we have big endian printing functions the gfs2_meta_header_in()
call in display_gfs2() can be removed. Rearrange the function to remove
a level of nesting and an unnecessary switch statement and group the
cases that all call lgfs2_meta_header_print().
Signed-off-by: Andrew Price <anprice(a)redhat.com>
---
gfs2/edit/gfs2hex.c | 132 +++++++++++++++++++++-------------------------------
gfs2/edit/gfs2hex.h | 2 +-
gfs2/edit/hexedit.h | 1 -
3 files changed, 55 insertions(+), 80 deletions(-)
diff --git a/gfs2/edit/gfs2hex.c b/gfs2/edit/gfs2hex.c
index 4c3426db..092b35b6 100644
--- a/gfs2/edit/gfs2hex.c
+++ b/gfs2/edit/gfs2hex.c
@@ -393,94 +393,70 @@ static void gfs_sb_print(void *sbp)
lgfs2_inum_print(&sb->sb_license_di);
}
-int display_gfs2(char *buf)
+void display_gfs2(void *buf)
{
- struct gfs2_meta_header mh;
-
+ struct gfs2_meta_header *mh = buf;
uint32_t magic;
+ uint32_t type;
- magic = be32_to_cpu(*(uint32_t *)buf);
+ magic = be32_to_cpu(mh->mh_magic);
+ type = be32_to_cpu(mh->mh_type);
- switch (magic)
- {
- case GFS2_MAGIC:
- gfs2_meta_header_in(&mh, buf);
- if (mh.mh_type > GFS2_METATYPE_QC)
- print_gfs2("Unknown metadata type");
- else
- print_gfs2("%s:", block_type_str[mh.mh_type]);
+ if (magic != GFS2_MAGIC) {
+ print_gfs2("Unknown block type");
eol(0);
+ return;
+ }
- switch (mh.mh_type)
- {
- case GFS2_METATYPE_SB:
- if (sbd.gfs1)
- gfs_sb_print(buf);
- else
- lgfs2_sb_print(buf);
- break;
- case GFS2_METATYPE_RG:
- if (sbd.gfs1)
- gfs_rgrp_print(buf);
- else
- lgfs2_rgrp_print(buf);
- break;
-
- case GFS2_METATYPE_RB:
- gfs2_meta_header_print(&mh);
- break;
-
- case GFS2_METATYPE_DI:
- lgfs2_dinode_print(di);
- break;
- case GFS2_METATYPE_IN:
- gfs2_meta_header_print(&mh);
- break;
-
- case GFS2_METATYPE_LF:
- lgfs2_leaf_print(buf);
- break;
-
- case GFS2_METATYPE_JD:
- gfs2_meta_header_print(&mh);
- break;
-
- case GFS2_METATYPE_LH:
- if (sbd.gfs1)
- gfs_log_header_print(buf);
- else
- lgfs2_log_header_print(buf);
- break;
-
- case GFS2_METATYPE_LD:
- lgfs2_log_descriptor_print(buf);
- break;
-
- case GFS2_METATYPE_EA:
- do_eattr_extended(buf);
- 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:
- lgfs2_quota_change_print(buf);
- break;
+ if (type <= GFS2_METATYPE_QC)
+ print_gfs2("%s:", block_type_str[type]);
+ eol(0);
- default:
- break;
- }
+ switch (type)
+ {
+ case GFS2_METATYPE_SB:
+ if (sbd.gfs1)
+ gfs_sb_print(buf);
+ else
+ lgfs2_sb_print(buf);
+ break;
+ case GFS2_METATYPE_RG:
+ if (sbd.gfs1)
+ gfs_rgrp_print(buf);
+ else
+ lgfs2_rgrp_print(buf);
+ break;
+ case GFS2_METATYPE_DI:
+ lgfs2_dinode_print(di);
+ break;
+ case GFS2_METATYPE_LF:
+ lgfs2_leaf_print(buf);
+ break;
+ case GFS2_METATYPE_LH:
+ if (sbd.gfs1)
+ gfs_log_header_print(buf);
+ else
+ lgfs2_log_header_print(buf);
+ break;
+ case GFS2_METATYPE_LD:
+ lgfs2_log_descriptor_print(buf);
+ break;
+ case GFS2_METATYPE_EA:
+ do_eattr_extended(buf);
+ break;
+ case GFS2_METATYPE_QC:
+ lgfs2_quota_change_print(buf);
+ break;
+ case GFS2_METATYPE_RB:
+ case GFS2_METATYPE_IN:
+ case GFS2_METATYPE_JD:
+ case GFS2_METATYPE_ED:
+ case GFS2_METATYPE_LB:
+ lgfs2_meta_header_print(mh);
break;
-
default:
print_gfs2("Unknown block type");
eol(0);
break;
- };
- return(0);
+ }
}
diff --git a/gfs2/edit/gfs2hex.h b/gfs2/edit/gfs2hex.h
index 23b1fc60..a86e3a4c 100644
--- a/gfs2/edit/gfs2hex.h
+++ b/gfs2/edit/gfs2hex.h
@@ -3,7 +3,7 @@
#include "hexedit.h"
-extern int display_gfs2(char *buf);
+extern void display_gfs2(void *buf);
extern int edit_gfs2(void);
extern void do_dinode_extended(char *buf);
extern void print_gfs2(const char *fmt, ...) __attribute__((format (printf, 1, 2)));
diff --git a/gfs2/edit/hexedit.h b/gfs2/edit/hexedit.h
index cb3343d0..b0ca1fba 100644
--- a/gfs2/edit/hexedit.h
+++ b/gfs2/edit/hexedit.h
@@ -58,7 +58,6 @@ extern WINDOW *wind;
extern int editing;
extern uint64_t temp_blk;
extern uint64_t starting_blk;
-extern const char *block_type_str[15];
extern int dsplines;
extern int dsp_lines[DMODES];
extern int combined_display;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
Show replies by date