]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD: bail out of do_recovery if no longer primary and active
authorSamuel Just <sam.just@inktank.com>
Thu, 7 Jun 2012 22:03:50 +0000 (15:03 -0700)
committerSamuel Just <sam.just@inktank.com>
Thu, 5 Jul 2012 17:15:01 +0000 (10:15 -0700)
Signed-off-by: Samuel Just <sam.just@inktank.com>
src/osd/OSD.cc

index f8e3f13bd1254c386ff845e420467fb9584b2cb8..bd26e2d260465538f7431c09e32c5f377e9f3e15 100644 (file)
@@ -4768,7 +4768,7 @@ void OSD::do_recovery(PG *pg)
     recovery_wq.queue(pg);
   } else {
     pg->lock();
-    if (pg->deleting) {
+    if (pg->deleting || !(pg->is_active() && pg->is_primary())) {
       pg->unlock();
       pg->put();
       return;