diff --git a/thin-provisioning/emitter.h b/thin-provisioning/emitter.h index 58658a9..bb944da 100644 --- a/thin-provisioning/emitter.h +++ b/thin-provisioning/emitter.h @@ -49,6 +49,8 @@ namespace thin_provisioning { virtual void begin_superblock(std::string const &uuid, uint64_t time, uint64_t trans_id, + boost::optional flags, + boost::optional version, uint32_t data_block_size, uint64_t nr_data_blocks, boost::optional metadata_snap) = 0; diff --git a/thin-provisioning/human_readable_format.cc b/thin-provisioning/human_readable_format.cc index 3cfc188..6c53b3c 100644 --- a/thin-provisioning/human_readable_format.cc +++ b/thin-provisioning/human_readable_format.cc @@ -43,12 +43,16 @@ namespace { void begin_superblock(string const &uuid, uint64_t time, uint64_t trans_id, + boost::optional flags, + boost::optional version, uint32_t data_block_size, uint64_t nr_data_blocks, boost::optional metadata_snap) { out_ << "begin superblock: \"" << uuid << "\"" << ", " << time << ", " << trans_id + << ", " << (flags ? *flags : 0) + << ", " << (version ? *version : 1) << ", " << data_block_size << ", " << nr_data_blocks; if (metadata_snap) diff --git a/thin-provisioning/metadata_dumper.cc b/thin-provisioning/metadata_dumper.cc index 0c0fbe4..5006fc0 100644 --- a/thin-provisioning/metadata_dumper.cc +++ b/thin-provisioning/metadata_dumper.cc @@ -228,6 +228,8 @@ thin_provisioning::metadata_dump(metadata::ptr md, emitter::ptr e, bool repair) e->begin_superblock("", md->sb_.time_, md->sb_.trans_id_, + md->sb_.flags_, + md->sb_.version_, md->sb_.data_block_size_, nr_data_blocks, boost::optional()); diff --git a/thin-provisioning/restore_emitter.cc b/thin-provisioning/restore_emitter.cc index fd83f56..2fab704 100644 --- a/thin-provisioning/restore_emitter.cc +++ b/thin-provisioning/restore_emitter.cc @@ -44,6 +44,8 @@ namespace { virtual void begin_superblock(std::string const &uuid, uint64_t time, uint64_t trans_id, + boost::optional flags, + boost::optional version, uint32_t data_block_size, uint64_t nr_data_blocks, boost::optional metadata_snap) { @@ -54,6 +56,8 @@ namespace { memcpy(&sb.uuid_, uuid.c_str(), std::min(sizeof(sb.uuid_), uuid.length())); sb.time_ = time; sb.trans_id_ = trans_id; + sb.flags_ = flags ? *flags : 0; + sb.version_ = version ? *version : 1; sb.data_block_size_ = data_block_size; sb.metadata_snap_ = metadata_snap ? *metadata_snap : 0; md_->data_sm_->extend(nr_data_blocks); diff --git a/thin-provisioning/xml_format.cc b/thin-provisioning/xml_format.cc index 333204f..efbfd3f 100644 --- a/thin-provisioning/xml_format.cc +++ b/thin-provisioning/xml_format.cc @@ -50,6 +50,8 @@ namespace { void begin_superblock(string const &uuid, uint64_t time, uint64_t trans_id, + boost::optional flags, + boost::optional version, uint32_t data_block_size, uint64_t nr_data_blocks, boost::optional metadata_snap) { @@ -57,6 +59,8 @@ namespace { out_ << "begin_superblock(get_attr(attr, "uuid"), get_attr(attr, "time"), get_attr(attr, "transaction"), + get_opt_attr(attr, "flags"), + get_opt_attr(attr, "version"), get_attr(attr, "data_block_size"), get_attr(attr, "nr_data_blocks"), get_opt_attr(attr, "metadata_snap"));