[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

@@ -204,7 +204,7 @@ namespace {
}
void clear_needs_check(string const &path) {
block_manager<>::ptr bm = open_bm(path, block_manager<>::READ_WRITE);
block_manager::ptr bm = open_bm(path, block_manager::READ_WRITE);
superblock sb = read_superblock(bm);
sb.flags.clear_flag(superblock_flags::NEEDS_CHECK);
@@ -223,7 +223,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);
mapping_reporter mapping_rep(out);

View File

@@ -35,7 +35,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));
if (want_stdout(output)) {

View File

@@ -19,12 +19,12 @@ using namespace caching;
namespace {
metadata::ptr open_metadata_for_read(string const &path) {
block_manager<>::ptr bm = open_bm(path, block_manager<>::READ_ONLY);
block_manager::ptr bm = open_bm(path, block_manager::READ_ONLY);
return metadata::ptr(new metadata(bm));
}
emitter::ptr output_emitter(string const &path) {
block_manager<>::ptr bm = open_bm(path, block_manager<>::READ_WRITE);
block_manager::ptr bm = open_bm(path, block_manager::READ_WRITE);
metadata::ptr md(new metadata(bm, metadata::CREATE));
return create_restore_emitter(md, true);
}

View File

@@ -60,7 +60,7 @@ namespace {
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);
check_file_exists(*fs.input);
ifstream in(fs.input->c_str(), ifstream::in);

View File

@@ -296,7 +296,7 @@ namespace {
}
int writeback_(flags const &f) {
block_manager<>::ptr bm = open_bm(*f.metadata_dev, block_manager<>::READ_WRITE);
block_manager::ptr bm = open_bm(*f.metadata_dev, block_manager::READ_WRITE);
metadata md(bm);
// FIXME: we're going to have to copy runs to get the through put with small block sizes

View File

@@ -10,7 +10,7 @@ namespace pd = persistent_data;
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.");
@@ -33,7 +33,7 @@ namespace {
//----------------------------------------------------------------
metadata::metadata(block_manager<>::ptr bm, open_type ot, unsigned metadata_version)
metadata::metadata(block_manager::ptr bm, open_type ot, unsigned metadata_version)
{
switch (ot) {
case CREATE:
@@ -45,7 +45,7 @@ metadata::metadata(block_manager<>::ptr bm, open_type ot, unsigned metadata_vers
}
}
metadata::metadata(block_manager<>::ptr bm)
metadata::metadata(block_manager::ptr bm)
{
open_metadata(bm);
}
@@ -69,7 +69,7 @@ metadata::setup_hint_array(size_t width)
}
void
metadata::create_metadata(block_manager<>::ptr bm, unsigned metadata_version)
metadata::create_metadata(block_manager::ptr bm, unsigned metadata_version)
{
tm_ = open_tm(bm);
@@ -90,7 +90,7 @@ metadata::create_metadata(block_manager<>::ptr bm, unsigned metadata_version)
}
void
metadata::open_metadata(block_manager<>::ptr bm)
metadata::open_metadata(block_manager::ptr bm)
{
tm_ = open_tm(bm);
sb_ = read_superblock(tm_->get_bm());

View File

@@ -22,12 +22,12 @@ namespace caching {
CREATE
};
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, unsigned metadata_version = 2); // Create only
metadata(block_manager<>::ptr bm);
metadata(block_manager::ptr bm, open_type ot, unsigned metadata_version = 2); // Create only
metadata(block_manager::ptr bm);
void commit(bool clean_shutdown = true);
void setup_hint_array(size_t width);
@@ -45,8 +45,8 @@ namespace caching {
private:
void init_superblock();
void create_metadata(block_manager<>::ptr bm, unsigned metadata_version);
void open_metadata(block_manager<>::ptr bm);
void create_metadata(block_manager::ptr bm, unsigned metadata_version);
void open_metadata(block_manager::ptr bm);
void commit_space_map();
void commit_mappings();

View File

@@ -325,11 +325,11 @@ namespace validator {
//--------------------------------
superblock
caching::read_superblock(block_manager<>::ptr bm, block_address location)
caching::read_superblock(block_manager::ptr bm, block_address location)
{
using namespace validator;
superblock sb;
block_manager<>::read_ref r = bm->read_lock(location, mk_v());
block_manager::read_ref r = bm->read_lock(location, mk_v());
superblock_disk const *sbd = reinterpret_cast<superblock_disk const *>(r.data());
superblock_traits::unpack(*sbd, sb);
@@ -337,10 +337,10 @@ caching::read_superblock(block_manager<>::ptr bm, block_address location)
}
void
caching::write_superblock(block_manager<>::ptr bm, superblock const &sb, block_address location)
caching::write_superblock(block_manager::ptr bm, superblock const &sb, block_address location)
{
using namespace validator;
block_manager<>::write_ref w = bm->superblock_zero(location, mk_v());
block_manager::write_ref w = bm->superblock_zero(location, mk_v());
superblock_traits::pack(sb, *reinterpret_cast<superblock_disk *>(w.data()));
}
@@ -415,7 +415,7 @@ caching::check_superblock(superblock const &sb,
}
void
caching::check_superblock(persistent_data::block_manager<>::ptr bm,
caching::check_superblock(persistent_data::block_manager::ptr bm,
block_address nr_metadata_blocks,
damage_visitor &visitor)
{

View File

@@ -137,10 +137,10 @@ namespace caching {
bcache::validator::ptr superblock_validator();
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);
@@ -148,7 +148,7 @@ namespace caching {
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);
}