if (cct->_conf->client_oc) {
vector<ObjectExtent> ls;
Striper::file_to_extents(cct, in->ino, &in->layout, off, len, in->truncate_size, ls);
- objectcacher->discard_writeback(&in->oset, ls, nullptr);
+ objectcacher->discard_set(&in->oset, ls);
}
_schedule_invalidate_callback(in, off, len);
bh->bl.clear();
bh->set_nocache(true);
oc->mark_zero(bh);
- // we should mark all Rx bh to zero
- continue;
+ return;
} else {
assert(bh->waitfor_read.empty());
}
if (gather.has_subs()) {
gather.set_finisher(new FunctionContext(
- [this, oset, on_finish](int) {
- _discard_finish(oset, false, on_finish);
+ [this, oset, was_dirty, on_finish](int) {
+ _discard_finish(oset, was_dirty, on_finish);
}));
gather.activate();
return;