{
dout(10) << "purge " << *ob << dendl;
- for (map<off_t,BufferHead*>::iterator p = ob->data.begin();
- p != ob->data.end();
- p++) {
- BufferHead *bh = p->second;
- if (!bh->is_clean())
- dout(0) << "purge forcibly removing " << *ob << " " << *bh << dendl;
- bh_remove(ob, bh);
- delete bh;
+ while (!ob->data.empty()) {
+ BufferHead *bh = ob->data.begin()->second;
+ if (!bh->is_clean())
+ dout(0) << "purge forcibly removing " << *ob << " " << *bh << dendl;
+ bh_remove(ob, bh);
+ delete bh;
}
if (ob->can_close()) {
- dout(10) << "trim trimming " << *ob << dendl;
- close_object(ob);
+ dout(10) << "trim trimming " << *ob << dendl;
+ close_object(ob);
}
}