mirror of
https://github.com/ceph/ceph
synced 2025-02-23 19:17:37 +00:00
crimson/os/seastore/cache: trim backref cache before preparing record
Otherwise, the transaction record would contain backrefs that has been merged into the backref tree Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
This commit is contained in:
parent
3b983cccbb
commit
e760ca204b
@ -355,6 +355,9 @@ TransactionManager::submit_transaction_direct(
|
||||
return tref.get_handle().enter(write_pipeline.prepare);
|
||||
}).si_then([this, FNAME, &tref, seq_to_trim=std::move(seq_to_trim)]() mutable
|
||||
-> submit_transaction_iertr::future<> {
|
||||
if (seq_to_trim && *seq_to_trim != JOURNAL_SEQ_NULL) {
|
||||
cache->trim_backref_bufs(*seq_to_trim);
|
||||
}
|
||||
auto record = cache->prepare_record(tref, segment_cleaner.get());
|
||||
|
||||
tref.get_handle().maybe_release_collection_lock();
|
||||
@ -365,9 +368,6 @@ TransactionManager::submit_transaction_direct(
|
||||
(auto submit_result) mutable {
|
||||
SUBDEBUGT(seastore_t, "committed with {}", tref, submit_result);
|
||||
auto start_seq = submit_result.write_result.start_seq;
|
||||
if (seq_to_trim && *seq_to_trim != JOURNAL_SEQ_NULL) {
|
||||
cache->trim_backref_bufs(*seq_to_trim);
|
||||
}
|
||||
cache->complete_commit(
|
||||
tref,
|
||||
submit_result.record_block_base,
|
||||
|
Loading…
Reference in New Issue
Block a user