summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Just <sam.just@inktank.com>2013-06-17 13:09:21 -0700
committerSamuel Just <sam.just@inktank.com>2013-06-17 13:15:30 -0700
commitd46e6c3bff985be14e7c66caf3b7819bd6daf6fa (patch)
tree6c1af9f5b49702a33f429a9b828b466bcac43f16
parentd582ee2438a3bd307324c5f44491f26fd6a56704 (diff)
downloadceph-d46e6c3bff985be14e7c66caf3b7819bd6daf6fa.tar.gz
OSD: we need to check pg ?.0 for resurrection
Fixes: #5269 Signed-off-by: Samuel Just <sam.just@inktank.com> Reviewed-by: Sage Weil <sage@inktank.com> Reviewed-by: Greg Farnum <greg@inktank.com>
-rw-r--r--src/osd/OSD.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc
index 521e7f69b0b..f9a8bcbe8e3 100644
--- a/src/osd/OSD.cc
+++ b/src/osd/OSD.cc
@@ -1767,10 +1767,12 @@ OSD::res_result OSD::_try_resurrect_pg(
// find nearest ancestor
DeletingStateRef df;
pg_t cur(pgid);
- while (cur.ps()) {
+ while (true) {
df = service.deleting_pgs.lookup(pgid);
if (df)
break;
+ if (!cur.ps())
+ break;
cur = cur.get_parent();
}
if (!df)