]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/test/librbd/object_map/test_mock_SnapshotCreateRequest.cc
import 15.2.0 Octopus source
[ceph.git] / ceph / src / test / librbd / object_map / test_mock_SnapshotCreateRequest.cc
index 6aa8d1427964fbd764dbe912ba35fe6fa463b839..74ac7732b90d8e7ad95de4428a09b5668f987690 100644 (file)
@@ -23,8 +23,7 @@ using ::testing::StrEq;
 class TestMockObjectMapSnapshotCreateRequest : public TestMockFixture {
 public:
   void inject_snap_info(librbd::ImageCtx *ictx, uint64_t snap_id) {
-    RWLock::WLocker snap_locker(ictx->snap_lock);
-    RWLock::RLocker parent_locker(ictx->parent_lock);
+    std::unique_lock image_locker{ictx->image_lock};
     ictx->add_snap(cls::rbd::UserSnapshotNamespace(), "snap name", snap_id,
                   ictx->size, ictx->parent_md,
                    RBD_PROTECTION_STATUS_UNPROTECTED, 0, utime_t());
@@ -86,6 +85,7 @@ TEST_F(TestMockObjectMapSnapshotCreateRequest, Success) {
   ASSERT_EQ(0, open_image(m_image_name, &ictx));
   ASSERT_EQ(0, acquire_exclusive_lock(*ictx));
 
+  ceph::shared_mutex object_map_lock = ceph::make_shared_mutex("lock");
   ceph::BitVector<2> object_map;
 
   uint64_t snap_id = 1;
@@ -98,9 +98,9 @@ TEST_F(TestMockObjectMapSnapshotCreateRequest, Success) {
 
   C_SaferCond cond_ctx;
   AsyncRequest<> *request = new SnapshotCreateRequest(
-    *ictx, &object_map, snap_id, &cond_ctx);
+    *ictx, &object_map_lock, &object_map, snap_id, &cond_ctx);
   {
-    RWLock::RLocker snap_locker(ictx->snap_lock);
+    std::shared_lock image_locker{ictx->image_lock};
     request->send();
   }
   ASSERT_EQ(0, cond_ctx.wait());
@@ -115,6 +115,7 @@ TEST_F(TestMockObjectMapSnapshotCreateRequest, ReadMapError) {
   ASSERT_EQ(0, open_image(m_image_name, &ictx));
   ASSERT_EQ(0, acquire_exclusive_lock(*ictx));
 
+  ceph::shared_mutex object_map_lock = ceph::make_shared_mutex("lock");
   ceph::BitVector<2> object_map;
 
   uint64_t snap_id = 1;
@@ -124,9 +125,9 @@ TEST_F(TestMockObjectMapSnapshotCreateRequest, ReadMapError) {
 
   C_SaferCond cond_ctx;
   AsyncRequest<> *request = new SnapshotCreateRequest(
-    *ictx, &object_map, snap_id, &cond_ctx);
+    *ictx, &object_map_lock, &object_map, snap_id, &cond_ctx);
   {
-    RWLock::RLocker snap_locker(ictx->snap_lock);
+    std::shared_lock image_locker{ictx->image_lock};
     request->send();
   }
   ASSERT_EQ(0, cond_ctx.wait());
@@ -141,6 +142,7 @@ TEST_F(TestMockObjectMapSnapshotCreateRequest, WriteMapError) {
   ASSERT_EQ(0, open_image(m_image_name, &ictx));
   ASSERT_EQ(0, acquire_exclusive_lock(*ictx));
 
+  ceph::shared_mutex object_map_lock = ceph::make_shared_mutex("lock");
   ceph::BitVector<2> object_map;
 
   uint64_t snap_id = 1;
@@ -151,9 +153,9 @@ TEST_F(TestMockObjectMapSnapshotCreateRequest, WriteMapError) {
 
   C_SaferCond cond_ctx;
   AsyncRequest<> *request = new SnapshotCreateRequest(
-    *ictx, &object_map, snap_id, &cond_ctx);
+    *ictx, &object_map_lock, &object_map, snap_id, &cond_ctx);
   {
-    RWLock::RLocker snap_locker(ictx->snap_lock);
+    std::shared_lock image_locker{ictx->image_lock};
     request->send();
   }
   ASSERT_EQ(0, cond_ctx.wait());
@@ -168,6 +170,7 @@ TEST_F(TestMockObjectMapSnapshotCreateRequest, AddSnapshotError) {
   ASSERT_EQ(0, open_image(m_image_name, &ictx));
   ASSERT_EQ(0, acquire_exclusive_lock(*ictx));
 
+  ceph::shared_mutex object_map_lock = ceph::make_shared_mutex("lock");
   ceph::BitVector<2> object_map;
 
   uint64_t snap_id = 1;
@@ -179,9 +182,9 @@ TEST_F(TestMockObjectMapSnapshotCreateRequest, AddSnapshotError) {
 
   C_SaferCond cond_ctx;
   AsyncRequest<> *request = new SnapshotCreateRequest(
-    *ictx, &object_map, snap_id, &cond_ctx);
+    *ictx, &object_map_lock, &object_map, snap_id, &cond_ctx);
   {
-    RWLock::RLocker snap_locker(ictx->snap_lock);
+    std::shared_lock image_locker{ictx->image_lock};
     request->send();
   }
   ASSERT_EQ(0, cond_ctx.wait());
@@ -196,6 +199,7 @@ TEST_F(TestMockObjectMapSnapshotCreateRequest, FlagCleanObjects) {
   ASSERT_EQ(0, open_image(m_image_name, &ictx));
   ASSERT_EQ(0, acquire_exclusive_lock(*ictx));
 
+  ceph::shared_mutex object_map_lock = ceph::make_shared_mutex("lock");
   ceph::BitVector<2> object_map;
   object_map.resize(1024);
   for (uint64_t i = 0; i < object_map.size(); ++i) {
@@ -207,9 +211,9 @@ TEST_F(TestMockObjectMapSnapshotCreateRequest, FlagCleanObjects) {
 
   C_SaferCond cond_ctx;
   AsyncRequest<> *request = new SnapshotCreateRequest(
-    *ictx, &object_map, snap_id, &cond_ctx);
+    *ictx, &object_map_lock, &object_map, snap_id, &cond_ctx);
   {
-    RWLock::RLocker snap_locker(ictx->snap_lock);
+    std::shared_lock image_locker{ictx->image_lock};
     request->send();
   }
   ASSERT_EQ(0, cond_ctx.wait());