[block_manager] Hard code block size to 4k.

We're never going to use anything other than 4k, and by hard coding it we
avoid making block_manager a template.
This commit is contained in:
Joe Thornber
2020-04-30 14:30:01 +01:00
parent 3e5de399a7
commit e801cc607b
57 changed files with 390 additions and 448 deletions

View File

@@ -197,7 +197,7 @@ namespace {
return FATAL;
}
block_manager<>::ptr bm = open_bm(path, block_manager<>::READ_ONLY);
block_manager::ptr bm = open_bm(path, block_manager::READ_ONLY);
superblock_reporter sb_rep(out);

View File

@@ -38,7 +38,7 @@ namespace {
int dump(string const &dev, string const &output, flags const &fs) {
try {
block_manager<>::ptr bm = open_bm(dev, block_manager<>::READ_ONLY);
block_manager::ptr bm = open_bm(dev, block_manager::READ_ONLY);
metadata::ptr md(new metadata(bm, metadata::OPEN));
if (want_stdout(output)) {

View File

@@ -152,7 +152,7 @@ namespace {
int invalidate(string const &dev, string const &output, flags const &fs) {
try {
set<uint32_t> blocks;
block_manager<>::ptr bm = open_bm(dev, block_manager<>::READ_ONLY, !fs.metadata_snapshot_);
block_manager::ptr bm = open_bm(dev, block_manager::READ_ONLY, !fs.metadata_snapshot_);
if (fs.metadata_snapshot_) {
superblock sb = read_superblock(bm);

View File

@@ -36,7 +36,7 @@ namespace {
int restore(flags const &fs, bool quiet) {
bool metadata_touched = false;
try {
block_manager<>::ptr bm = open_bm(*fs.output, block_manager<>::READ_WRITE);
block_manager::ptr bm = open_bm(*fs.output, block_manager::READ_WRITE);
file_utils::check_file_exists(*fs.output);
metadata_touched = true;
metadata::ptr md(new metadata(bm, metadata::CREATE));

View File

@@ -8,7 +8,7 @@ using namespace era;
namespace {
// FIXME: duplication
transaction_manager::ptr
open_tm(block_manager<>::ptr bm) {
open_tm(block_manager::ptr bm) {
auto nr_blocks = bm->get_nr_blocks();
if (!nr_blocks)
throw runtime_error("Metadata is not large enough for superblock.");
@@ -29,7 +29,7 @@ namespace {
}
}
metadata::metadata(block_manager<>::ptr bm, open_type ot)
metadata::metadata(block_manager::ptr bm, open_type ot)
{
switch (ot) {
case CREATE:
@@ -42,13 +42,13 @@ metadata::metadata(block_manager<>::ptr bm, open_type ot)
}
}
metadata::metadata(block_manager<>::ptr bm, block_address metadata_snap)
metadata::metadata(block_manager::ptr bm, block_address metadata_snap)
{
open_metadata(bm);
}
void
metadata::create_metadata(block_manager<>::ptr bm)
metadata::create_metadata(block_manager::ptr bm)
{
tm_ = open_tm(bm);
@@ -63,7 +63,7 @@ metadata::create_metadata(block_manager<>::ptr bm)
}
void
metadata::open_metadata(block_manager<>::ptr bm, block_address loc)
metadata::open_metadata(block_manager::ptr bm, block_address loc)
{
tm_ = open_tm(bm);
sb_ = read_superblock(tm_->get_bm(), loc);

View File

@@ -23,12 +23,12 @@ namespace era {
OPEN
};
typedef block_manager<>::read_ref read_ref;
typedef block_manager<>::write_ref write_ref;
typedef block_manager::read_ref read_ref;
typedef block_manager::write_ref write_ref;
typedef boost::shared_ptr<metadata> ptr;
metadata(block_manager<>::ptr bm, open_type ot);
metadata(block_manager<>::ptr bm, block_address metadata_snap);
metadata(block_manager::ptr bm, open_type ot);
metadata(block_manager::ptr bm, block_address metadata_snap);
void commit();
typedef persistent_data::transaction_manager tm;
@@ -39,8 +39,8 @@ namespace era {
era_array::ptr era_array_;
private:
void create_metadata(block_manager<>::ptr bm);
void open_metadata(block_manager<>::ptr bm,
void create_metadata(block_manager::ptr bm);
void open_metadata(block_manager::ptr bm,
block_address loc = SUPERBLOCK_LOCATION);
void commit_space_map();

View File

@@ -245,10 +245,10 @@ namespace era_validator {
//----------------------------------------------------------------
superblock
era::read_superblock(block_manager<>::ptr bm, block_address location)
era::read_superblock(block_manager::ptr bm, block_address location)
{
superblock sb;
block_manager<>::read_ref r = bm->read_lock(location, era_validator::mk_v());
block_manager::read_ref r = bm->read_lock(location, era_validator::mk_v());
superblock_disk const *sbd = reinterpret_cast<superblock_disk const *>(r.data());
superblock_traits::unpack(*sbd, sb);
@@ -256,9 +256,9 @@ era::read_superblock(block_manager<>::ptr bm, block_address location)
}
void
era::write_superblock(block_manager<>::ptr bm, superblock const &sb, block_address location)
era::write_superblock(block_manager::ptr bm, superblock const &sb, block_address location)
{
block_manager<>::write_ref w = bm->superblock_zero(location, era_validator::mk_v());
block_manager::write_ref w = bm->superblock_zero(location, era_validator::mk_v());
superblock_traits::pack(sb, *reinterpret_cast<superblock_disk *>(w.data()));
}
@@ -322,7 +322,7 @@ era::check_superblock(superblock const &sb,
}
void
era::check_superblock(persistent_data::block_manager<>::ptr bm,
era::check_superblock(persistent_data::block_manager::ptr bm,
block_address nr_metadata_blocks,
damage_visitor &visitor)
{

View File

@@ -114,10 +114,10 @@ namespace era {
//--------------------------------
superblock read_superblock(persistent_data::block_manager<>::ptr bm,
superblock read_superblock(persistent_data::block_manager::ptr bm,
persistent_data::block_address location = SUPERBLOCK_LOCATION);
void write_superblock(persistent_data::block_manager<>::ptr bm,
void write_superblock(persistent_data::block_manager::ptr bm,
superblock const &sb,
persistent_data::block_address location = SUPERBLOCK_LOCATION);
@@ -125,7 +125,7 @@ namespace era {
persistent_data::block_address nr_metadata_blocks,
superblock_damage::damage_visitor &visitor);
void check_superblock(persistent_data::block_manager<>::ptr bm,
void check_superblock(persistent_data::block_manager::ptr bm,
persistent_data::block_address nr_metadata_blocks,
superblock_damage::damage_visitor &visitor);
}