[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Cluster-devel] libgfs2.h: Add gfs_block_tag structure, and some more flag symbols



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);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]