[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:
@@ -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);
|
||||
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user