]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/cache: add the missing extent invalid check
authorYingxin Cheng <yingxin.cheng@intel.com>
Wed, 30 Jun 2021 03:55:39 +0000 (11:55 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Thu, 1 Jul 2021 02:15:21 +0000 (10:15 +0800)
see 2bc257beb2ef1253e38c254745f42b3ac5db52de

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
src/crimson/os/seastore/cache.h

index 5316804362b500929fd755fd17cbd837b22a8b70..071bc7e9c1036844c9d54e2c675acbc0e246a102 100644 (file)
@@ -326,9 +326,14 @@ public:
       return trans_intr::make_interruptible(
        get_extent_by_type(type, offset, laddr, length)
       ).si_then([=, &t](CachedExtentRef ret) {
-       t.add_to_read_set(ret);
-       return get_extent_ertr::make_ready_future<CachedExtentRef>(
-         std::move(ret));
+        if (!ret->is_valid()) {
+          t.conflicted = true;
+          return get_extent_ertr::make_ready_future<CachedExtentRef>();
+        } else {
+          t.add_to_read_set(ret);
+          return get_extent_ertr::make_ready_future<CachedExtentRef>(
+            std::move(ret));
+        }
       });
     }
   }