cluster-devel.redhat.com archive mirror
 help / color / mirror / Atom feed
* [Cluster-devel] libgfs2.h: Add gfs_block_tag structure, and some more flag symbols
@ 2012-02-02 13:05 Steven Whitehouse
  2012-02-02 16:15 ` Andrew Price
  0 siblings, 1 reply; 2+ messages in thread
From: Steven Whitehouse @ 2012-02-02 13:05 UTC (permalink / raw)
  To: cluster-devel.redhat.com


This adds the missing gfs_block_tag structure to the metadata
description and also adds some symbolic constants for log
header/descriptor blocks.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>

diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h
index ce1dae8..ef80b63 100644
--- a/gfs2/libgfs2/libgfs2.h
+++ b/gfs2/libgfs2/libgfs2.h
@@ -98,6 +98,7 @@ enum lgfs2_meta_type {
 	LGFS2_MT_GFS2_INUM_RANGE = 22,
 	LGFS2_MT_STATFS_CHANGE = 23,
 	LGFS2_MT_GFS_JINDEX = 24,
+	LGFS2_MT_GFS_BLOCK_TAG = 25,
 	
 	LGFS2_MT_NR,
 };
@@ -344,6 +345,12 @@ extern const struct lgfs2_symbolic lgfs2_metaformats[];
 extern const unsigned lgfs2_metaformat_size;
 extern const struct lgfs2_symbolic lgfs2_di_flags[];
 extern const unsigned lgfs2_di_flag_size;
+extern const struct lgfs2_symbolic lgfs2_lh_flags[];
+extern const unsigned lgfs2_lh_flag_size;
+extern const struct lgfs2_symbolic lgfs2_ld_types[];
+extern const unsigned lgfs2_ld_type_size;
+extern const struct lgfs2_symbolic lgfs2_ld1_types[];
+extern const unsigned lgfs2_ld1_type_size;
 extern int lgfs2_selfcheck(void);
 
 /* bitmap.c */
diff --git a/gfs2/libgfs2/meta.c b/gfs2/libgfs2/meta.c
index 65c535e..737182a 100644
--- a/gfs2/libgfs2/meta.c
+++ b/gfs2/libgfs2/meta.c
@@ -63,6 +63,30 @@ SYM(GFS2_DIF_INHERIT_JDATA)
 
 const unsigned lgfs2_di_flag_size = ARRAY_SIZE(lgfs2_di_flags);
 
+const struct lgfs2_symbolic lgfs2_lh_flags[] = {
+SYM(GFS2_LOG_HEAD_UNMOUNT)
+};
+
+const unsigned int lgfs2_lh_flag_size = ARRAY_SIZE(lgfs2_lh_flags);
+
+const struct lgfs2_symbolic lgfs2_ld_types[] = {
+SYM(GFS2_LOG_DESC_METADATA)
+SYM(GFS2_LOG_DESC_REVOKE)
+SYM(GFS2_LOG_DESC_JDATA)
+};
+
+const unsigned int lgfs2_ld_type_size = ARRAY_SIZE(lgfs2_ld_types);
+
+const struct lgfs2_symbolic lgfs2_ld1_types[] = {
+SYM(GFS_LOG_DESC_METADATA)
+SYM(GFS_LOG_DESC_IUL)
+SYM(GFS_LOG_DESC_IDA)
+SYM(GFS_LOG_DESC_Q)
+SYM(GFS_LOG_DESC_LAST)
+};
+
+const unsigned int lgfs2_ld1_type_size = ARRAY_SIZE(lgfs2_ld1_types);
+
 #undef SYM
 
 
@@ -304,7 +328,7 @@ F(lh_hash, .flags = LGFS2_MFF_CHECK)
 
 static const struct lgfs2_metafield gfs_log_header_fields[] = {
 MH(lh_header)
-F(lh_flags)
+F(lh_flags, .flags = LGFS2_MFF_MASK, .symtab = lgfs2_lh_flags, .nsyms = ARRAY_SIZE(lgfs2_lh_flags))
 RF(lh_pad)
 F(lh_first)
 F(lh_sequence)
@@ -318,7 +342,7 @@ RF(lh_reserved)
 
 static const struct lgfs2_metafield gfs2_log_desc_fields[] = {
 MH(ld_header)
-F(ld_type)
+F(ld_type, .flags = LGFS2_MFF_ENUM, .symtab = lgfs2_ld_types, .nsyms = ARRAY_SIZE(lgfs2_ld_types))
 F(ld_length, .flags = LGFS2_MFF_FSBLOCKS)
 F(ld_data1)
 F(ld_data2)
@@ -330,7 +354,7 @@ RF(ld_reserved)
 
 static const struct lgfs2_metafield gfs_log_desc_fields[] = {
 MH(ld_header)
-F(ld_type)
+F(ld_type, .flags = LGFS2_MFF_ENUM, .symtab = lgfs2_ld1_types, .nsyms = ARRAY_SIZE(lgfs2_ld1_types))
 F(ld_length, .flags = LGFS2_MFF_FSBLOCKS)
 F(ld_data1)
 F(ld_data2)
@@ -422,6 +446,20 @@ RF(ji_pad)
 RF(ji_reserved)
 };
 
+#undef STRUCT
+struct gfs_block_tag {
+	uint64_t bt_blkno;      /* inplace block number */
+	uint32_t bt_flags;      /* ?? */
+	uint32_t bt_pad;
+};
+#define STRUCT gfs_block_tag
+
+static const struct lgfs2_metafield gfs_block_tag_fields[] = {
+FP(bt_blkno)
+RF(bt_flags)
+RF(bt_pad)
+};
+
 const struct lgfs2_metadata lgfs2_metadata[] = {
 	[LGFS2_MT_GFS2_SB] = {
 		.gfs2 = 1,
@@ -661,6 +699,13 @@ const struct lgfs2_metadata lgfs2_metadata[] = {
 		.nfields = ARRAY_SIZE(gfs_jindex_fields),
 		.size = sizeof(struct gfs_jindex),
 	},
+	[LGFS2_MT_GFS_BLOCK_TAG] = {
+		.gfs1 = 1,
+		.name = "gfs_block_tag",
+		.fields = gfs_block_tag_fields,
+		.nfields = ARRAY_SIZE(gfs_block_tag_fields),
+		.size = sizeof(struct gfs_block_tag),
+	},
 };
 
 const unsigned lgfs2_metadata_size = ARRAY_SIZE(lgfs2_metadata);




^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-02-02 16:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-02 13:05 [Cluster-devel] libgfs2.h: Add gfs_block_tag structure, and some more flag symbols Steven Whitehouse
2012-02-02 16:15 ` Andrew Price

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).