]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
objectcacher: fix truncation bug
authorSage Weil <sage@newdream.net>
Wed, 23 Jul 2008 17:58:30 +0000 (10:58 -0700)
committerSage Weil <sage@newdream.net>
Wed, 23 Jul 2008 17:58:30 +0000 (10:58 -0700)
src/osdc/ObjectCacher.cc

index febb47bc60dc333887c0ad2c2c86a11e3b35bd22..ebaf4647ff397a6ecf966e341467cb0fe0615a2a 100644 (file)
@@ -1319,19 +1319,17 @@ void ObjectCacher::purge(Object *ob)
 {
   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);
   }
 }