Skip to content

Commit 09e06b5

Browse files
committed
crimson/os/seastore/transaction: make Transaction::is_retired() an
accurate extent check Signed-off-by: Xuehan Xu <[email protected]>
1 parent 0bda735 commit 09e06b5

File tree

1 file changed

+5
-10
lines changed

1 file changed

+5
-10
lines changed

src/crimson/os/seastore/transaction.h

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -317,19 +317,14 @@ class Transaction {
317317
}
318318

319319
bool is_retired(paddr_t paddr, extent_len_t len) {
320-
if (retired_set.empty()) {
321-
return false;
322-
}
323320
auto iter = retired_set.lower_bound(paddr);
324321
if (iter == retired_set.end() ||
325-
(*iter)->get_paddr() > paddr) {
326-
assert(iter != retired_set.begin());
327-
--iter;
322+
(*iter)->get_paddr() != paddr) {
323+
return false;
324+
} else {
325+
assert(len == (*iter)->get_length());
326+
return true;
328327
}
329-
auto retired_paddr = (*iter)->get_paddr();
330-
auto retired_length = (*iter)->get_length();
331-
return retired_paddr <= paddr &&
332-
retired_paddr.add_offset(retired_length) >= paddr.add_offset(len);
333328
}
334329

335330
template <typename F>

0 commit comments

Comments
 (0)