From d3448fcd0ef07dc413571a7e42084ba3a71ba847 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 (cherry picked from commit e1dd69391900a236fbda5e4cee58e9bdc20824fc) Conflicts: src/librbd/api/Migration.cc - in nautilus, this file does not mention RBD_FEATURES_IMPLICIT_ENABLE --- src/librbd/api/Image.cc | 2 +- src/librbd/api/Migration.cc | 2 -- 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 +-- 7 files changed, 4 insertions(+), 13 deletions(-) diff --git a/src/librbd/api/Image.cc b/src/librbd/api/Image.cc index 67f408e5fdc7..aa427535970e 100644 --- a/src/librbd/api/Image.cc +++ b/src/librbd/api/Image.cc @@ -547,7 +547,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 47df20a9b960..ae09d407ea06 100644 --- a/src/librbd/api/Migration.cc +++ b/src/librbd/api/Migration.cc @@ -455,8 +455,6 @@ int Migration::prepare(librados::IoCtx& io_ctx, false, cls::rbd::MIGRATION_STATE_PREPARING, "", nullptr); r = migration.prepare(); - opts.set(RBD_IMAGE_OPTION_FEATURES, features); - return r; } diff --git a/src/test/librbd/test_DeepCopy.cc b/src/test/librbd/test_DeepCopy.cc index 1f9148faa07f..aa00bdf1283f 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 29bbdfbd5db2..c50996f9a224 100644 --- a/src/test/librbd/test_Migration.cc +++ b/src/test/librbd/test_Migration.cc @@ -292,7 +292,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(); @@ -405,7 +404,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 ea64d0387135..93f311e3d08b 100644 --- a/src/test/rbd_mirror/test_ImageDeleter.cc +++ b/src/test/rbd_mirror/test_ImageDeleter.cc @@ -66,8 +66,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 092d41f5f651..b0b345fb91a1 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 8ef6858c3da7..8d8236b2b87e 100644 --- a/src/tools/rbd_mirror/image_replayer/CreateImageRequest.cc +++ b/src/tools/rbd_mirror/image_replayer/CreateImageRequest.cc @@ -459,8 +459,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.47.3