]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/cached_extent: fix maybe_generate_relative 40942/head
authorSamuel Just <sjust@redhat.com>
Wed, 21 Apr 2021 06:59:46 +0000 (23:59 -0700)
committerSamuel Just <sjust@redhat.com>
Thu, 22 Apr 2021 06:16:43 +0000 (23:16 -0700)
The only case we really care about here is that record relative addresses
for initial_pending extents need to be turned into block relative extents.

Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/os/seastore/cached_extent.h

index 88300f1d432320bc96b8c2541fe7c4a99831c480..e3da26592d0758e63478777f008c3df651551ba4 100644 (file)
@@ -415,15 +415,11 @@ protected:
    * reference.
    */
   paddr_t maybe_generate_relative(paddr_t addr) {
-    if (!addr.is_relative()) {
-      return addr;
-    } else if (is_mutation_pending()) {
-      assert(addr.is_record_relative());
-      return addr;
-    } else {
-      ceph_assert(is_initial_pending());
-      ceph_assert(get_paddr().is_record_relative());
+    if (is_initial_pending() && addr.is_record_relative()) {
       return addr - get_paddr();
+    } else {
+      ceph_assert(!addr.is_record_relative() || is_mutation_pending());
+      return addr;
     }
   }