lderr(cct) << "librbd does not support requested features." << dendl;
return -ENOSYS;
}
- if ((features & RBD_FEATURE_OPERATIONS) != 0) {
+ if ((features & RBD_FEATURES_INTERNAL) != 0) {
lderr(cct) << "cannot use internally controlled features" << dendl;
return -EINVAL;
}
m_features |= features_set;
m_features &= ~features_clear;
+ m_features &= ~RBD_FEATURES_IMPLICIT_ENABLE;
if ((m_features & RBD_FEATURE_OBJECT_MAP) == RBD_FEATURE_OBJECT_MAP) {
m_features |= RBD_FEATURE_FAST_DIFF;
}
m_features |= RBD_FEATURE_DATA_POOL;
} else {
m_data_pool.clear();
- m_features &= ~RBD_FEATURE_DATA_POOL;
}
if ((m_stripe_unit != 0 && m_stripe_unit != (1ULL << m_order)) ||
(m_stripe_count != 0 && m_stripe_count != 1)) {
m_features |= RBD_FEATURE_STRIPINGV2;
- } else {
- m_features &= ~RBD_FEATURE_STRIPINGV2;
}
ldout(m_cct, 10) << "name=" << m_image_name << ", "