]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/cache: wait io when read from Cache::extents
authorYingxin Cheng <yingxin.cheng@intel.com>
Wed, 30 Jun 2021 05:22:07 +0000 (13:22 +0800)
committerYingxin Cheng <yingxin.cheng@intel.com>
Thu, 1 Jul 2021 02:15:21 +0000 (10:15 +0800)
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
src/crimson/os/seastore/cache.cc

index 49cb3a968ff985615a10a63b6b5b8623a32b0423..68782dfafcf8c1cd5ea657237655b0bc91d4e0f8 100644 (file)
@@ -486,9 +486,12 @@ Cache::replay_delta(
       -> get_extent_ertr::future<CachedExtentRef> {
       auto retiter = extents.find_offset(addr);
       if (retiter != extents.end()) {
-       return seastar::make_ready_future<CachedExtentRef>(&*retiter);
+        CachedExtentRef ret = &*retiter;
+        return ret->wait_io().then([ret] {
+          return ret;
+        });
       } else {
-       return seastar::make_ready_future<CachedExtentRef>();
+        return seastar::make_ready_future<CachedExtentRef>();
       }
     };
     auto extent_fut = (delta.pversion == 0 ?