From e1dd69391900a236fbda5e4cee58e9bdc20824fc Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Fri, 18 Dec 2020 10:14:13 -0500 Subject: [PATCH] librbd: drop explicit masking of implicit feature bits Now that the create image state machine is handling the masking of implicit features, all callers to the state machine can skip the need to perform the masking themselves. Signed-off-by: Jason Dillaman --- src/librbd/api/Image.cc | 2 +- src/librbd/api/Migration.cc | 3 --- src/librbd/image/CloneRequest.cc | 1 - src/test/librbd/test_DeepCopy.cc | 1 - src/test/librbd/test_Migration.cc | 2 -- src/test/rbd_mirror/test_ImageDeleter.cc | 3 +-- src/test/rbd_mirror/test_fixture.cc | 4 +--- src/tools/rbd_mirror/image_replayer/CreateImageRequest.cc | 3 +-- 8 files changed, 4 insertions(+), 15 deletions(-) diff --git a/src/librbd/api/Image.cc b/src/librbd/api/Image.cc index db2a82eb5c6..b68824d9d6f 100644 --- a/src/librbd/api/Image.cc +++ b/src/librbd/api/Image.cc @@ -549,7 +549,7 @@ int Image::deep_copy(I *src, librados::IoCtx& dest_md_ctx, return -EBUSY; } - features = (src->features & ~RBD_FEATURES_IMPLICIT_ENABLE); + features = src->features; src_size = src->get_image_size(src->snap_id); } uint64_t format = 2; diff --git a/src/librbd/api/Migration.cc b/src/librbd/api/Migration.cc index 1f0cf68bed4..957c872ac55 100644 --- a/src/librbd/api/Migration.cc +++ b/src/librbd/api/Migration.cc @@ -467,7 +467,6 @@ int Migration::prepare(librados::IoCtx& io_ctx, lderr(cct) << "librbd does not support requested features" << dendl; return -ENOSYS; } - features &= ~RBD_FEATURES_IMPLICIT_ENABLE; opts.set(RBD_IMAGE_OPTION_FEATURES, features); uint64_t order = src_image_ctx->order; @@ -511,8 +510,6 @@ int Migration::prepare(librados::IoCtx& io_ctx, opts, nullptr); r = migration.prepare(); - opts.set(RBD_IMAGE_OPTION_FEATURES, features); - return r; } diff --git a/src/librbd/image/CloneRequest.cc b/src/librbd/image/CloneRequest.cc index b022ea75a72..7a955f06464 100644 --- a/src/librbd/image/CloneRequest.cc +++ b/src/librbd/image/CloneRequest.cc @@ -216,7 +216,6 @@ void CloneRequest::validate_parent() { if (m_use_p_features) { m_features = p_features; } - m_features &= ~RBD_FEATURES_IMPLICIT_ENABLE; if (r < 0) { lderr(m_cct) << "unable to locate parent's snapshot" << dendl; diff --git a/src/test/librbd/test_DeepCopy.cc b/src/test/librbd/test_DeepCopy.cc index 741a5d54485..1a512aa292c 100644 --- a/src/test/librbd/test_DeepCopy.cc +++ b/src/test/librbd/test_DeepCopy.cc @@ -410,7 +410,6 @@ struct TestDeepCopy : public TestFixture { int order = m_src_ictx->order; uint64_t features; ASSERT_EQ(0, librbd::get_features(m_src_ictx, &features)); - features &= ~RBD_FEATURES_IMPLICIT_ENABLE; std::cout << "clone " << m_src_ictx->name << " -> " << clone_name << std::endl; diff --git a/src/test/librbd/test_Migration.cc b/src/test/librbd/test_Migration.cc index 5f96d620e26..959eb093475 100644 --- a/src/test/librbd/test_Migration.cc +++ b/src/test/librbd/test_Migration.cc @@ -294,7 +294,6 @@ struct TestMigration : public TestFixture { int order = m_ref_ictx->order; uint64_t features; ASSERT_EQ(0, librbd::get_features(m_ref_ictx, &features)); - features &= ~RBD_FEATURES_IMPLICIT_ENABLE; std::string ref_clone_name = get_temp_image_name(); std::string clone_name = get_temp_image_name(); @@ -407,7 +406,6 @@ struct TestMigration : public TestFixture { int order = m_ictx->order; uint64_t features; ASSERT_EQ(0, librbd::get_features(m_ictx, &features)); - features &= ~RBD_FEATURES_IMPLICIT_ENABLE; std::string clone_name = get_temp_image_name(); ASSERT_EQ(0, librbd::clone(m_ictx->md_ctx, m_ictx->name.c_str(), "snap1", diff --git a/src/test/rbd_mirror/test_ImageDeleter.cc b/src/test/rbd_mirror/test_ImageDeleter.cc index 2febc6f3296..5fa5d6db512 100644 --- a/src/test/rbd_mirror/test_ImageDeleter.cc +++ b/src/test/rbd_mirror/test_ImageDeleter.cc @@ -73,8 +73,7 @@ public: m_local_image_id = librbd::util::generate_image_id(m_local_io_ctx); librbd::ImageOptions image_opts; - image_opts.set(RBD_IMAGE_OPTION_FEATURES, - (RBD_FEATURES_ALL & ~RBD_FEATURES_IMPLICIT_ENABLE)); + image_opts.set(RBD_IMAGE_OPTION_FEATURES, RBD_FEATURES_ALL); EXPECT_EQ(0, librbd::create(m_local_io_ctx, m_image_name, m_local_image_id, 1 << 20, image_opts, GLOBAL_IMAGE_ID, m_remote_mirror_uuid, true)); diff --git a/src/test/rbd_mirror/test_fixture.cc b/src/test/rbd_mirror/test_fixture.cc index 23191da0398..7abf0e3e2a5 100644 --- a/src/test/rbd_mirror/test_fixture.cc +++ b/src/test/rbd_mirror/test_fixture.cc @@ -89,9 +89,7 @@ void TestFixture::TearDown() { int TestFixture::create_image(librbd::RBD &rbd, librados::IoCtx &ioctx, const std::string &name, uint64_t size) { int order = 18; - return rbd.create2(ioctx, name.c_str(), size, - (RBD_FEATURES_ALL & ~RBD_FEATURES_IMPLICIT_ENABLE), - &order); + return rbd.create2(ioctx, name.c_str(), size, RBD_FEATURES_ALL, &order); } int TestFixture::open_image(librados::IoCtx &io_ctx, diff --git a/src/tools/rbd_mirror/image_replayer/CreateImageRequest.cc b/src/tools/rbd_mirror/image_replayer/CreateImageRequest.cc index d7266b260ad..641bb03e80f 100644 --- a/src/tools/rbd_mirror/image_replayer/CreateImageRequest.cc +++ b/src/tools/rbd_mirror/image_replayer/CreateImageRequest.cc @@ -404,8 +404,7 @@ template void CreateImageRequest::populate_image_options( librbd::ImageOptions* image_options) { image_options->set(RBD_IMAGE_OPTION_FEATURES, - (m_remote_image_ctx->features & - ~RBD_FEATURES_IMPLICIT_ENABLE)); + m_remote_image_ctx->features); image_options->set(RBD_IMAGE_OPTION_ORDER, m_remote_image_ctx->order); image_options->set(RBD_IMAGE_OPTION_STRIPE_UNIT, m_remote_image_ctx->stripe_unit); -- 2.39.5