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