]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/.../alien_store: clear coll_map in umount rather than stop 59098/head
authorSamuel Just <sjust@redhat.com>
Thu, 8 Aug 2024 03:05:09 +0000 (20:05 -0700)
committerSamuel Just <sjust@redhat.com>
Thu, 8 Aug 2024 03:20:39 +0000 (03:20 +0000)
As of a926a4a54ced, BlueStore::umount expects outstanding CollectionRef's
to already have been released.

Previously, 8389471b3 updated alien_store.cc to release coll_map in
stop() in in the alien tp.

Fixes: https://tracker.ceph.com/issues/67415
Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/os/alienstore/alien_store.cc

index 03359ed80244eb61b42470fe82dcd008bc58481e..21bb250e13ff630b37b1ff3be8d14ee561939390 100644 (file)
@@ -128,13 +128,6 @@ seastar::future<> AlienStore::stop()
     return seastar::now();
   }
   return tp->submit([this] {
-    {
-      std::lock_guard l(coll_map_lock);
-      for (auto [cid, ch]: coll_map) {
-       static_cast<AlienCollection*>(ch.get())->collection.reset();
-      }
-      coll_map.clear();
-    }
     store.reset();
     cct.reset();
     g_ceph_context = nullptr;
@@ -182,6 +175,13 @@ seastar::future<> AlienStore::umount()
   }
   return op_gate.close().then([this] {
     return tp->submit([this] {
+      {
+       std::lock_guard l(coll_map_lock);
+       for (auto [cid, ch]: coll_map) {
+         static_cast<AlienCollection*>(ch.get())->collection.reset();
+       }
+       coll_map.clear();
+      }
       return store->umount();
     });
   }).then([] (int r) {