ASSERT_NE("", m_pool_name = create_pool());
}
+ bool is_skip_partial_discard_enabled() {
+ std::string value;
+ EXPECT_EQ(0, _rados.conf_get("rbd_skip_partial_discard", value));
+ return value == "true";
+ }
+
bool is_librados_test_stub() {
std::string fsid;
EXPECT_EQ(0, _rados.cluster_fsid(&fsid));
rados_ioctx_t ioctx;
rados_ioctx_create(_cluster, m_pool_name.c_str(), &ioctx);
- CephContext* cct = reinterpret_cast<CephContext*>(_rados.cct());
- bool skip_discard = cct->_conf->rbd_skip_partial_discard;
+ bool skip_discard = is_skip_partial_discard_enabled();
rbd_image_t image;
int order = 0;
rados_ioctx_t ioctx;
rados_ioctx_create(_cluster, m_pool_name.c_str(), &ioctx);
- CephContext* cct = reinterpret_cast<CephContext*>(_rados.cct());
- bool skip_discard = cct->_conf->rbd_skip_partial_discard;
+ bool skip_discard = is_skip_partial_discard_enabled();
rbd_image_t image;
int order = 0;
std::string data_pool_name = create_pool(true);
- CephContext* cct = reinterpret_cast<CephContext*>(_rados.cct());
- bool skip_discard = cct->_conf->rbd_skip_partial_discard;
+ bool skip_discard = is_skip_partial_discard_enabled();
rbd_image_t image;
std::string name = get_temp_image_name();
librados::IoCtx ioctx;
ASSERT_EQ(0, _rados.ioctx_create(m_pool_name.c_str(), ioctx));
- CephContext* cct = reinterpret_cast<CephContext*>(_rados.cct());
- bool skip_discard = cct->_conf->rbd_skip_partial_discard;
+ bool skip_discard = is_skip_partial_discard_enabled();
{
librbd::RBD rbd;
librados::IoCtx ioctx;
ASSERT_EQ(0, this->_rados.ioctx_create(this->m_pool_name.c_str(), ioctx));
- CephContext* cct = reinterpret_cast<CephContext*>(this->_rados.cct());
- bool skip_discard = cct->_conf->rbd_skip_partial_discard;
+ bool skip_discard = this->is_skip_partial_discard_enabled();
{
librbd::RBD rbd;
librados::IoCtx ioctx;
ASSERT_EQ(0, this->_rados.ioctx_create(this->m_pool_name.c_str(), ioctx));
- CephContext* cct = reinterpret_cast<CephContext*>(this->_rados.cct());
- bool skip_discard = cct->_conf->rbd_skip_partial_discard;
+ bool skip_discard = this->is_skip_partial_discard_enabled();
librbd::RBD rbd;
librbd::Image image;
librados::IoCtx ioctx;
ASSERT_EQ(0, this->_rados.ioctx_create(this->m_pool_name.c_str(), ioctx));
- CephContext* cct = reinterpret_cast<CephContext*>(this->_rados.cct());
- bool skip_discard = cct->_conf->rbd_skip_partial_discard;
+ bool skip_discard = this->is_skip_partial_discard_enabled();
librbd::RBD rbd;
librbd::Image image;
librados::IoCtx ioctx;
ASSERT_EQ(0, this->_rados.ioctx_create(this->m_pool_name.c_str(), ioctx));
- CephContext* cct = reinterpret_cast<CephContext*>(this->_rados.cct());
- bool skip_discard = cct->_conf->rbd_skip_partial_discard;
+ bool skip_discard = this->is_skip_partial_discard_enabled();
{
librbd::RBD rbd;
librados::IoCtx ioctx;
ASSERT_EQ(0, this->_rados.ioctx_create(this->m_pool_name.c_str(), ioctx));
- CephContext* cct = reinterpret_cast<CephContext*>(this->_rados.cct());
- bool skip_discard = cct->_conf->rbd_skip_partial_discard;
+ bool skip_discard = this->is_skip_partial_discard_enabled();
librbd::RBD rbd;
librbd::Image image;
librados::IoCtx ioctx;
ASSERT_EQ(0, _rados.ioctx_create(m_pool_name.c_str(), ioctx));
- CephContext* cct = reinterpret_cast<CephContext*>(_rados.cct());
- bool skip_discard = cct->_conf->rbd_skip_partial_discard;
+ bool skip_discard = is_skip_partial_discard_enabled();
librbd::RBD rbd;
std::string name = get_temp_image_name();
TEST_F(TestLibRBD, DiscardAfterWrite)
{
- CephContext* cct = reinterpret_cast<CephContext*>(_rados.cct());
- REQUIRE(!cct->_conf->rbd_skip_partial_discard);
+ REQUIRE(!is_skip_partial_discard_enabled());
librados::IoCtx ioctx;
ASSERT_EQ(0, _rados.ioctx_create(m_pool_name.c_str(), ioctx));