std::string pool_name = m_image_ctx.md_ctx.get_pool_name();
std::string log_pool_name = pwl_path + "/rbd-pwl." + pool_name + "." + m_image_ctx.id + ".pool";
- std::string log_poolset_name = pwl_path + "/rbd-pwl." + pool_name + "." + m_image_ctx.id + ".poolset";
- m_log_pool_config_size = max(m_cache_state->size, MIN_POOL_SIZE);
-
m_log_pool_name = log_pool_name;
- get_pool_name(log_poolset_name);
+
+ m_log_pool_config_size = max(m_cache_state->size, MIN_POOL_SIZE);
if ((!m_cache_state->present) &&
(access(m_log_pool_name.c_str(), F_OK) == 0)) {
- ldout(cct, 5) << "There's an existing pool/poolset file " << m_log_pool_name
+ ldout(cct, 5) << "There's an existing pool file " << m_log_pool_name
<< ", While there's no cache in the image metatata." << dendl;
if (remove(m_log_pool_name.c_str()) != 0) {
- lderr(cct) << "Failed to remove the pool/poolset file " << m_log_pool_name
+ lderr(cct) << "Failed to remove the pool file " << m_log_pool_name
<< dendl;
on_finish->complete(-errno);
return;
} else {
- ldout(cct, 5) << "Removed the existing pool/poolset file." << dendl;
+ ldout(cct, 5) << "Removed the existing pool file." << dendl;
}
}
ImageCtxT &m_image_ctx;
std::string m_log_pool_name;
- bool m_log_is_poolset = false;
uint64_t m_log_pool_config_size; /* Configured size of RWL */
uint64_t m_log_pool_actual_size = 0; /* Actual size of RWL pool */
virtual void initialize_pool(Context *on_finish, pwl::DeferredContexts &later) = 0;
virtual void write_data_to_buffer(
std::shared_ptr<pwl::WriteLogEntry> ws_entry, pwl::WriteLogPmemEntry *pmem_entry) {}
- virtual void get_pool_name(const std::string log_poolset_name) {}
virtual void alloc_op_log_entries(pwl::GenericLogOperations &ops) {}
virtual bool retire_entries(const unsigned long int frees_per_tx) {return false;}
virtual void schedule_flush_and_append(pwl::GenericLogOperationsVector &ops) {}
ops.size() * sizeof(*(ops.front()->get_log_entry()->pmem_entry)));
}
-template <typename I>
-void ReplicatedWriteLog<I>::get_pool_name(const std::string log_poolset_name) {
- CephContext *cct = m_image_ctx.cct;
- ceph_assert(ceph_mutex_is_locked_by_me(m_lock));
- if (access(log_poolset_name.c_str(), F_OK) == 0) {
- this->m_log_pool_name = log_poolset_name;
- this->m_log_is_poolset = true;
- } else {
- ldout(cct, 5) << "Poolset file " << log_poolset_name
- << " not present (or can't open). Using unreplicated pool" << dendl;
- }
-}
-
template <typename I>
void ReplicatedWriteLog<I>::remove_pool_file() {
if (m_log_pool) {
pmemobj_close(m_log_pool);
}
if (m_cache_state->clean) {
- if (this->m_log_is_poolset) {
- ldout(m_image_ctx.cct, 5) << "Not removing poolset " << this->m_log_pool_name << dendl;
- } else {
ldout(m_image_ctx.cct, 5) << "Removing empty pool file: " << this->m_log_pool_name << dendl;
if (remove(this->m_log_pool_name.c_str()) != 0) {
lderr(m_image_ctx.cct) << "failed to remove empty pool \"" << this->m_log_pool_name << "\": "
m_cache_state->empty = true;
m_cache_state->present = false;
}
- }
} else {
- if (this->m_log_is_poolset) {
- ldout(m_image_ctx.cct, 5) << "Not removing poolset " << this->m_log_pool_name << dendl;
- } else {
- ldout(m_image_ctx.cct, 5) << "Not removing pool file: " << this->m_log_pool_name << dendl;
- }
+ ldout(m_image_ctx.cct, 5) << "Not removing pool file: " << this->m_log_pool_name << dendl;
}
}
pwl::GenericLogOperationsVector &ops, bool do_early_flush) override;
Context *construct_flush_entry_ctx(
const std::shared_ptr<pwl::GenericLogEntry> log_entry) override;
- void get_pool_name(const std::string log_poolset_name) override;
void initialize_pool(Context *on_finish, pwl::DeferredContexts &later) override;
void write_data_to_buffer(
std::shared_ptr<pwl::WriteLogEntry> ws_entry,