]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: fix temp clearing in OSD
authorDavid Zafman <dzafman@redhat.com>
Mon, 6 Jul 2015 23:35:16 +0000 (16:35 -0700)
committerSage Weil <sage@redhat.com>
Fri, 10 Jul 2015 15:30:11 +0000 (11:30 -0400)
Signed-off-by: David Zafman <dzafman@redhat.com>
src/osd/OSD.cc

index 6805cb2902f81e5b6633ad26ed9a52aebcd2a058..1ec11a89f96f995201919e219bfc5711478eda41 100644 (file)
@@ -2484,15 +2484,17 @@ void OSD::clear_temp_objects()
                                     0, &objects, &next);
       if (objects.empty())
        break;
-      for (vector<ghobject_t>::iterator q = objects.begin(); q != objects.end();
-          ++q) {
+      vector<ghobject_t>::iterator q;
+      for (q = objects.begin(); q != objects.end(); ++q) {
        if (q->hobj.is_temp()) {
          temps.push_back(*q);
        } else {
          break;
        }
       }
-      if (!objects.empty())
+      // If we saw a non-temp object and hit the break above we can
+      // break out of the while loop too.
+      if (q != objects.end())
        break;
     }
     if (!temps.empty()) {