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@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@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,
cluster-commits@lists.fedorahosted.org