]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd: do not clean up split state on deleted pools
authorSage Weil <sage@redhat.com>
Wed, 13 Dec 2017 00:49:38 +0000 (18:49 -0600)
committerSage Weil <sage@redhat.com>
Thu, 11 Jan 2018 23:07:00 +0000 (17:07 -0600)
We want the PGs to get created and then process the newer osdmap(s) to
delete themselves.

Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/OSD.cc

index a85510ce8b57bf278cb13fda4b8dbfa40877ab24..16d7a7ad05c8b5338fd1eb094a4a37ba60adb767 100644 (file)
@@ -452,26 +452,11 @@ void OSDService::expand_pg_num(OSDMapRef old_map,
                               OSDMapRef new_map)
 {
   Mutex::Locker l(in_progress_split_lock);
-  for (set<spg_t>::iterator i = in_progress_splits.begin();
-       i != in_progress_splits.end();
-    ) {
-    if (!new_map->have_pg_pool(i->pool())) {
-      in_progress_splits.erase(i++);
-    } else {
-      _maybe_split_pgid(old_map, new_map, *i);
-      ++i;
-    }
+  for (auto pgid : in_progress_splits) {
+    _maybe_split_pgid(old_map, new_map, pgid);
   }
-  for (map<spg_t, spg_t>::iterator i = pending_splits.begin();
-       i != pending_splits.end();
-    ) {
-    if (!new_map->have_pg_pool(i->first.pool())) {
-      rev_pending_splits.erase(i->second);
-      pending_splits.erase(i++);
-    } else {
-      _maybe_split_pgid(old_map, new_map, i->first);
-      ++i;
-    }
+  for (auto i : pending_splits) {
+    _maybe_split_pgid(old_map, new_map, i.first);
   }
 }