[Cluster-devel] [PATCH 09/20] libgfs2: Don't use buffer_heads in gfs2_sb_in

Andrew Price anprice at redhat.com
Mon Mar 5 18:25:38 UTC 2018


Signed-off-by: Andrew Price <anprice at redhat.com>
---
 gfs2/convert/gfs2_convert.c |  2 +-
 gfs2/edit/gfs2hex.c         |  2 +-
 gfs2/edit/hexedit.c         |  4 ++--
 gfs2/edit/savemeta.c        | 14 +++++++-------
 gfs2/glocktop/glocktop.c    |  2 +-
 gfs2/libgfs2/libgfs2.h      |  2 +-
 gfs2/libgfs2/ondisk.c       |  6 +++---
 gfs2/libgfs2/super.c        |  2 +-
 8 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/gfs2/convert/gfs2_convert.c b/gfs2/convert/gfs2_convert.c
index 765c6d50..6aac2b0e 100644
--- a/gfs2/convert/gfs2_convert.c
+++ b/gfs2/convert/gfs2_convert.c
@@ -1587,7 +1587,7 @@ static int init(struct gfs2_sbd *sbp, struct gfs2_options *opts)
 	bh = bread(sbp, GFS2_SB_ADDR >> sbp->sd_fsb2bb_shift);
 	memcpy(&raw_gfs1_ondisk_sb, (struct gfs_sb *)bh->b_data,
 		   sizeof(struct gfs_sb));
-	gfs2_sb_in(&sbp->sd_sb, bh);
+	gfs2_sb_in(&sbp->sd_sb, bh->b_data);
 
 	jindex_addr = be64_to_cpu(raw_gfs1_ondisk_sb.sb_jindex_di.no_addr);
 	rindex_addr = be64_to_cpu(raw_gfs1_ondisk_sb.sb_rindex_di.no_addr);
diff --git a/gfs2/edit/gfs2hex.c b/gfs2/edit/gfs2hex.c
index 4a20b465..2d165392 100644
--- a/gfs2/edit/gfs2hex.c
+++ b/gfs2/edit/gfs2hex.c
@@ -490,7 +490,7 @@ int display_gfs2(struct gfs2_buffer_head *dbh)
 		switch (mh.mh_type)
 		{
 		case GFS2_METATYPE_SB:
-			gfs2_sb_in(&sbd.sd_sb, dbh);
+			gfs2_sb_in(&sbd.sd_sb, dbh->b_data);
 			gfs2_sb_print2(&sbd.sd_sb);
 			break;
 
diff --git a/gfs2/edit/hexedit.c b/gfs2/edit/hexedit.c
index 9997ddb5..a06199e7 100644
--- a/gfs2/edit/hexedit.c
+++ b/gfs2/edit/hexedit.c
@@ -973,7 +973,7 @@ static void read_superblock(int fd)
 	sbd.qcsize = GFS2_DEFAULT_QCSIZE;
 	sbd.time = time(NULL);
 	sbd.rgtree.osi_node = NULL;
-	gfs2_sb_in(&sbd.sd_sb, bh); /* parse it out into the sb structure */
+	gfs2_sb_in(&sbd.sd_sb, bh->b_data);
 	/* Check to see if this is really gfs1 */
 	if (sbd1->sb_fs_format == GFS_FORMAT_FS &&
 		sbd1->sb_header.mh_type == GFS_METATYPE_SB &&
@@ -1103,7 +1103,7 @@ int display(int identify_only, int trunc_zeros, uint64_t flagref,
 	indirect_blocks = 0;
 	lines_per_row[dmode] = 1;
 	if (gfs2_struct_type == GFS2_METATYPE_SB || blk == 0x10 * (4096 / sbd.bsize)) {
-		gfs2_sb_in(&sbd.sd_sb, bh); /* parse it out into the sb structure */
+		gfs2_sb_in(&sbd.sd_sb, bh->b_data);
 		memset(indirect, 0, sizeof(struct iinfo));
 		indirect->ii[0].block = sbd.sd_sb.sb_master_dir.no_addr;
 		indirect->ii[0].is_dir = TRUE;
diff --git a/gfs2/edit/savemeta.c b/gfs2/edit/savemeta.c
index c4dab490..0b7e4790 100644
--- a/gfs2/edit/savemeta.c
+++ b/gfs2/edit/savemeta.c
@@ -1059,15 +1059,15 @@ static int restore_super(gzFile gzfd, off_t pos)
 {
 	int ret;
 	struct saved_metablock svb = {0};
-	struct gfs2_buffer_head dummy_bh;
+	char *buf;
 
-	dummy_bh.b_data = calloc(1, sizeof(struct gfs2_sb));
-	if (dummy_bh.b_data == NULL) {
+	buf = calloc(1, sizeof(struct gfs2_sb));
+	if (buf == NULL) {
 		perror("Failed to restore super block");
 		exit(1);
 	}
 	gzseek(gzfd, pos, SEEK_SET);
-	ret = restore_block(gzfd, &svb, dummy_bh.b_data, sizeof(struct gfs2_sb));
+	ret = restore_block(gzfd, &svb, buf, sizeof(struct gfs2_sb));
 	if (ret == 1) {
 		fprintf(stderr, "Reached end of file while restoring superblock\n");
 		goto err;
@@ -1075,7 +1075,7 @@ static int restore_super(gzFile gzfd, off_t pos)
 		goto err;
 	}
 
-	gfs2_sb_in(&sbd.sd_sb, &dummy_bh);
+	gfs2_sb_in(&sbd.sd_sb, buf);
 	sbd1 = (struct gfs_sb *)&sbd.sd_sb;
 	ret = check_sb(&sbd.sd_sb);
 	if (ret < 0) {
@@ -1085,11 +1085,11 @@ static int restore_super(gzFile gzfd, off_t pos)
 	if (ret == 1)
 		sbd.gfs1 = 1;
 	sbd.bsize = sbd.sd_sb.sb_bsize;
-	free(dummy_bh.b_data);
+	free(buf);
 	printf("Block size is %uB\n", sbd.bsize);
 	return 0;
 err:
-	free(dummy_bh.b_data);
+	free(buf);
 	return -1;
 }
 
diff --git a/gfs2/glocktop/glocktop.c b/gfs2/glocktop/glocktop.c
index cef368a0..45d8c497 100644
--- a/gfs2/glocktop/glocktop.c
+++ b/gfs2/glocktop/glocktop.c
@@ -234,7 +234,7 @@ static void read_superblock(int fd, int mntpt)
 
 	ioctl(fd, BLKFLSBUF, 0);
 	bh = bread(&sbd, GFS2_SB_ADDR);
-	gfs2_sb_in(&sd_sb[mntpt], bh); /* parse it out into the sb structure */
+	gfs2_sb_in(&sd_sb[mntpt], bh->b_data);
 	bsize = sd_sb[mntpt].sb_bsize;
 	if (!bsize)
 		bsize = 4096;
diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h
index 4f0d4924..0e4ca9d6 100644
--- a/gfs2/libgfs2/libgfs2.h
+++ b/gfs2/libgfs2/libgfs2.h
@@ -723,7 +723,7 @@ extern void gfs2_inum_in(struct gfs2_inum *no, char *buf);
 extern void gfs2_inum_out(const struct gfs2_inum *no, char *buf);
 extern void gfs2_meta_header_in(struct gfs2_meta_header *mh, char *buf);
 extern void gfs2_meta_header_out(const struct gfs2_meta_header *mh, char *buf);
-extern void gfs2_sb_in(struct gfs2_sb *sb, struct gfs2_buffer_head *bh);
+extern void gfs2_sb_in(struct gfs2_sb *sb, char *buf);
 extern void gfs2_sb_out(const struct gfs2_sb *sb, char *buf);
 extern void gfs2_rindex_in(struct gfs2_rindex *ri, char *buf);
 extern void gfs2_rindex_out(const struct gfs2_rindex *ri, char *buf);
diff --git a/gfs2/libgfs2/ondisk.c b/gfs2/libgfs2/ondisk.c
index f56717a8..9bcba878 100644
--- a/gfs2/libgfs2/ondisk.c
+++ b/gfs2/libgfs2/ondisk.c
@@ -91,11 +91,11 @@ void gfs2_meta_header_print(const struct gfs2_meta_header *mh)
 	pv(mh, mh_format, "%u", "0x%x");
 }
 
-void gfs2_sb_in(struct gfs2_sb *sb, struct gfs2_buffer_head *bh)
+void gfs2_sb_in(struct gfs2_sb *sb, char *buf)
 {
-	struct gfs2_sb *str = (struct gfs2_sb *)bh->b_data;
+	struct gfs2_sb *str = (struct gfs2_sb *)buf;
 
-	gfs2_meta_header_in(&sb->sb_header, bh->b_data);
+	gfs2_meta_header_in(&sb->sb_header, buf);
 
 	CPIN_32(sb, str, sb_fs_format);
 	CPIN_32(sb, str, sb_multihost_format);
diff --git a/gfs2/libgfs2/super.c b/gfs2/libgfs2/super.c
index 4b80da2f..6e7d8c23 100644
--- a/gfs2/libgfs2/super.c
+++ b/gfs2/libgfs2/super.c
@@ -57,7 +57,7 @@ int read_sb(struct gfs2_sbd *sdp)
 	int ret;
 
 	bh = bread(sdp, GFS2_SB_ADDR >> sdp->sd_fsb2bb_shift);
-	gfs2_sb_in(&sdp->sd_sb, bh);
+	gfs2_sb_in(&sdp->sd_sb, bh->b_data);
 	brelse(bh);
 
 	ret = check_sb(&sdp->sd_sb);
-- 
2.14.3




More information about the Cluster-devel mailing list