From e52d5469b7d1aecc40158a10ea85f42186fa508b Mon Sep 17 00:00:00 2001 From: Yingxin Cheng Date: Mon, 28 Jun 2021 21:38:49 +0800 Subject: [PATCH] crimson/onode-staged-tree: check invalid transaction only Signed-off-by: Yingxin Cheng --- .../onode_manager/staged-fltree/node_extent_manager/seastore.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_manager/seastore.h b/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_manager/seastore.h index f2d5a48a3dbd0..deb873265e92f 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_manager/seastore.h +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/node_extent_manager/seastore.h @@ -109,11 +109,12 @@ class SeastoreNodeExtentManager final: public TransactionManagerHandle { ).safe_then([addr, &t](auto&& e) -> read_ertr::future { TRACET("read {}B at {:#x} -- {}", t, e->get_length(), e->get_laddr(), *e); - if (!e->is_valid() || t.is_conflicted()) { + if (t.is_conflicted()) { ERRORT("transaction conflict detected on extent read {}", t, *e); assert(t.is_conflicted()); return crimson::ct_error::eagain::make(); } + assert(e->is_valid()); assert(e->get_laddr() == addr); std::ignore = addr; return read_ertr::make_ready_future(e); -- 2.39.5