trace.event("start");
}
+ list<Context*> wait_for_reads;
for (vector<ObjectExtent>::iterator ex_it = wr->extents.begin();
ex_it != wr->extents.end();
++ex_it) {
bool missing = bh->is_missing();
bh->snapc = wr->snapc;
+ // readers that need to be woken up due to an overwrite
+ for (auto& [_, wait_for_read] : bh->waitfor_read) {
+ wait_for_reads.splice(wait_for_reads.end(), wait_for_read);
+ }
+ bh->waitfor_read.clear();
+
bytes_written += ex_it->length;
if (bh->is_tx()) {
bytes_written_in_flush += ex_it->length;
int r = _wait_for_write(wr, bytes_written, oset, &trace, onfreespace);
delete wr;
+ finish_contexts(cct, wait_for_reads, 0);
+
//verify_stats();
trim();
return r;