]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD::do_recovery: unlock and relock around do_recovery sleep
authorSamuel Just <sjust@redhat.com>
Tue, 26 Apr 2016 01:48:24 +0000 (18:48 -0700)
committerSamuel Just <sjust@redhat.com>
Wed, 18 May 2016 19:58:51 +0000 (12:58 -0700)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/osd/OSD.cc

index 7d057509e7aec3539212dd9a03249763a826fac9..32e4f44e6c0b9876e4a3a77de57775f6c0b6c917 100644 (file)
@@ -8392,11 +8392,13 @@ void OSD::do_recovery(
   uint64_t started = 0;
   if (g_conf->osd_recovery_sleep > 0) {
     handle.suspend_tp_timeout();
+    pg->unlock();
     utime_t t;
     t.set_from_double(g_conf->osd_recovery_sleep);
     t.sleep();
-    handle.reset_tp_timeout();
     dout(20) << __func__ << " slept for " << t << dendl;
+    pg->lock();
+    handle.reset_tp_timeout();
   }
 
   {