This is an automated email from the git hooks/post-receive script.
andyp pushed a commit to branch andyp-extents
in repository gfs2-utils.
commit 374ddbd60cb66b5d6e99faeae98058d9518e06a4
Author: Andrew Price <anprice(a)redhat.com>
AuthorDate: Mon Apr 19 16:01:14 2021 +0100
libgfs2: Add support for new extent structs to meta.c
Signed-off-by: Andrew Price <anprice(a)redhat.com>
---
gfs2/libgfs2/libgfs2.h | 3 +++
gfs2/libgfs2/meta.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 62 insertions(+)
diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h
index 3f36ffb2..65e1b8c8 100644
--- a/gfs2/libgfs2/libgfs2.h
+++ b/gfs2/libgfs2/libgfs2.h
@@ -88,6 +88,9 @@ enum lgfs2_meta_type {
LGFS2_MT_GFS_BLOCK_TAG = 25,
LGFS2_MT_DATA = 26,
LGFS2_MT_FREE = 27,
+ LGFS2_MT_GFS2_EXTENT_HEADER = 28,
+ LGFS2_MT_GFS2_EXTENT_IDX = 29,
+ LGFS2_MT_GFS2_EXTENT = 30,
LGFS2_MT_NR,
};
diff --git a/gfs2/libgfs2/meta.c b/gfs2/libgfs2/meta.c
index db5f37b1..c082f198 100644
--- a/gfs2/libgfs2/meta.c
+++ b/gfs2/libgfs2/meta.c
@@ -23,6 +23,8 @@ SYM(GFS2_METATYPE_LB)
SYM(GFS2_METATYPE_EA)
SYM(GFS2_METATYPE_ED)
SYM(GFS2_METATYPE_QC)
+SYM(GFS2_METATYPE_XI)
+SYM(GFS2_METATYPE_XL)
};
const unsigned lgfs2_metatype_size = ARRAY_SIZE(lgfs2_metatypes);
@@ -42,6 +44,8 @@ SYM(GFS2_FORMAT_LB)
SYM(GFS2_FORMAT_EA)
SYM(GFS2_FORMAT_ED)
SYM(GFS2_FORMAT_QC)
+SYM(GFS2_FORMAT_XI)
+SYM(GFS2_FORMAT_XL)
SYM(GFS2_FORMAT_RI)
SYM(GFS2_FORMAT_DE)
SYM(GFS2_FORMAT_QU)
@@ -60,6 +64,7 @@ SYM(GFS2_DIF_APPENDONLY)
SYM(GFS2_DIF_NOATIME)
SYM(GFS2_DIF_SYNC)
SYM(GFS2_DIF_SYSTEM)
+SYM(GFS2_DIF_EXTENTS)
SYM(GFS2_DIF_TRUNC_IN_PROG)
SYM(GFS2_DIF_INHERIT_DIRECTIO)
SYM(GFS2_DIF_INHERIT_JDATA)
@@ -118,6 +123,10 @@ SYM(GFS_LOG_DESC_LAST)
const unsigned int lgfs2_ld1_type_size = ARRAY_SIZE(lgfs2_ld1_types);
+const struct lgfs2_symbolic lgfs2_ex_flags[] = {
+SYM(GFS2_EF_UNWRITTEN)
+};
+
#undef SYM
@@ -325,6 +334,32 @@ FP(di_eattr, .points_to = (1 << LGFS2_MT_EA_ATTR)|(1 <<
LGFS2_MT_GFS_INDIRECT))
F(di_reserved)
};
+#undef STRUCT
+#define STRUCT gfs2_extent_header
+
+static const struct lgfs2_metafield gfs2_extent_header_fields[] = {
+F(eh_entries)
+F(eh_pad)
+};
+
+#undef STRUCT
+#define STRUCT gfs2_extent_idx
+
+static const struct lgfs2_metafield gfs2_extent_idx_fields[] = {
+F(ei_start)
+F(ei_leaf)
+};
+
+#undef STRUCT
+#define STRUCT gfs2_extent
+
+static const struct lgfs2_metafield gfs2_extent_fields[] = {
+F(ex_start)
+F(ex_addr)
+F(ex_len, .flags = LGFS2_MFF_FSBLOCKS)
+F(ex_flags, .flags = LGFS2_MFF_MASK, .symtab=lgfs2_ex_flags,
.nsyms=ARRAY_SIZE(lgfs2_ex_flags))
+};
+
#undef STRUCT
struct gfs2_indirect { struct gfs2_meta_header in_header; };
#define STRUCT gfs2_indirect
@@ -616,6 +651,30 @@ const struct lgfs2_metadata lgfs2_metadata[] = {
.nfields = ARRAY_SIZE(gfs_dinode_fields),
.size = sizeof(struct gfs_dinode),
},
+ [LGFS2_MT_GFS2_EXTENT_HEADER] = {
+ .versions = LGFS2_MD_GFS2,
+ .name = "gfs2_extent_header",
+ .display = "extent header",
+ .fields = gfs2_extent_header_fields,
+ .nfields = ARRAY_SIZE(gfs2_extent_header_fields),
+ .size = sizeof(struct gfs2_extent_header),
+ },
+ [LGFS2_MT_GFS2_EXTENT_IDX] = {
+ .versions = LGFS2_MD_GFS2,
+ .name = "gfs2_extent_idx",
+ .display = "extent index",
+ .fields = gfs2_extent_idx_fields,
+ .nfields = ARRAY_SIZE(gfs2_extent_idx_fields),
+ .size = sizeof(struct gfs2_extent_idx),
+ },
+ [LGFS2_MT_GFS2_EXTENT] = {
+ .versions = LGFS2_MD_GFS2,
+ .name = "gfs2_extent",
+ .display = "extent",
+ .fields = gfs2_extent_fields,
+ .nfields = ARRAY_SIZE(gfs2_extent_fields),
+ .size = sizeof(struct gfs2_extent),
+ },
[LGFS2_MT_GFS2_INDIRECT] = {
.versions = LGFS2_MD_GFS2,
.header = 1,
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.