refactor(filesystem_v2): simplify constructor

This commit is contained in:
Marcus Holland-Moritz 2023-12-19 16:32:30 +01:00
parent a5c293f5b7
commit 447320b15a
5 changed files with 17 additions and 17 deletions

View File

@ -64,7 +64,7 @@ class filesystem_v2 {
filesystem_v2(logger& lgr, std::shared_ptr<mmif> mm);
filesystem_v2(logger& lgr, std::shared_ptr<mmif> mm,
filesystem_options const& options, int inode_offset = 0,
filesystem_options const& options,
std::shared_ptr<performance_monitor const> perfmon = nullptr);
static int

View File

@ -75,6 +75,7 @@ struct filesystem_options {
file_off_t image_offset{0};
block_cache_options block_cache;
metadata_options metadata;
int inode_offset{0};
};
struct filesystem_writer_options {

View File

@ -351,7 +351,7 @@ template <typename LoggerPolicy>
class filesystem_ final : public filesystem_v2::impl {
public:
filesystem_(logger& lgr, std::shared_ptr<mmif> mm,
const filesystem_options& options, int inode_offset,
const filesystem_options& options,
std::shared_ptr<performance_monitor const> perfmon);
void dump(std::ostream& os, int detail_level) const override;
@ -482,7 +482,6 @@ filesystem_info const& filesystem_<LoggerPolicy>::get_info() const {
template <typename LoggerPolicy>
filesystem_<LoggerPolicy>::filesystem_(
logger& lgr, std::shared_ptr<mmif> mm, const filesystem_options& options,
int inode_offset,
std::shared_ptr<performance_monitor const> perfmon [[maybe_unused]])
: LOG_PROXY_INIT(lgr)
, mm_(std::move(mm))
@ -532,7 +531,7 @@ filesystem_<LoggerPolicy>::filesystem_(
std::vector<uint8_t> schema_buffer;
meta_ = make_metadata(lgr, mm_, sections, schema_buffer, meta_buffer_,
options.metadata, inode_offset, false,
options.metadata, options.inode_offset, false,
options.lock_mode, !parser_.has_checksums());
LOG_DEBUG << "read " << cache.block_count() << " blocks and " << meta_.size()
@ -880,11 +879,10 @@ filesystem_v2::filesystem_v2(logger& lgr, std::shared_ptr<mmif> mm)
filesystem_v2::filesystem_v2(logger& lgr, std::shared_ptr<mmif> mm,
const filesystem_options& options,
int inode_offset,
std::shared_ptr<performance_monitor const> perfmon)
: impl_(make_unique_logging_object<filesystem_v2::impl, filesystem_,
logger_policies>(
lgr, std::move(mm), options, inode_offset, std::move(perfmon))) {}
lgr, std::move(mm), options, std::move(perfmon))) {}
int filesystem_v2::identify(logger& lgr, std::shared_ptr<mmif> mm,
std::ostream& os, int detail_level,

View File

@ -1162,6 +1162,15 @@ int run_fuse(struct fuse_args& args, char* mountpoint, int mt, int fg,
template <typename LoggerPolicy>
void load_filesystem(dwarfs_userdata& userdata) {
LOG_PROXY(LoggerPolicy, userdata.lgr);
constexpr int const inode_offset =
#ifdef FUSE_ROOT_ID
FUSE_ROOT_ID
#else
0
#endif
;
auto ti = LOG_TIMED_INFO;
auto& opts = userdata.opts;
@ -1174,6 +1183,7 @@ void load_filesystem(dwarfs_userdata& userdata) {
fsopts.block_cache.init_workers = false;
fsopts.metadata.enable_nlink = bool(opts.enable_nlink);
fsopts.metadata.readonly = bool(opts.readonly);
fsopts.inode_offset = inode_offset;
if (opts.image_offset_str) {
std::string image_offset{opts.image_offset_str};
@ -1187,14 +1197,6 @@ void load_filesystem(dwarfs_userdata& userdata) {
}
}
constexpr int inode_offset =
#ifdef FUSE_ROOT_ID
FUSE_ROOT_ID
#else
0
#endif
;
std::unordered_set<std::string> perfmon_enabled;
#if DWARFS_PERFMON_ENABLED
if (opts.perfmon_enabled_str) {
@ -1221,7 +1223,7 @@ void load_filesystem(dwarfs_userdata& userdata) {
userdata.fs =
filesystem_v2(userdata.lgr, std::make_shared<mmap>(opts.fsimage), fsopts,
inode_offset, userdata.perfmon);
userdata.perfmon);
ti << "file system initialized";
}

View File

@ -142,8 +142,7 @@ int dwarfsextract_main(int argc, sys_char** argv) {
std::shared_ptr<performance_monitor> perfmon =
performance_monitor::create(perfmon_enabled);
filesystem_v2 fs(lgr, std::make_shared<mmap>(filesystem), fsopts, 0,
perfmon);
filesystem_v2 fs(lgr, std::make_shared<mmap>(filesystem), fsopts, perfmon);
filesystem_extractor fsx(lgr);
if (format.empty()) {