]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/ReplicatedBackend: Don't forget reset_tp_timeout for first read.
authorJianpeng Ma <jianpeng.ma@intel.com>
Tue, 22 Sep 2015 06:39:09 +0000 (14:39 +0800)
committerDavid Zafman <dzafman@redhat.com>
Mon, 4 Jan 2016 19:16:48 +0000 (11:16 -0800)
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/osd/ReplicatedBackend.cc

index c5bc9c38756c553e2157a5da00495b6e7b5dd452..57d5e49b5844e6d3a099286ad51ef138336f3f28 100644 (file)
@@ -758,14 +758,18 @@ void ReplicatedBackend::be_deep_scrub(
 
   uint32_t fadvise_flags = CEPH_OSD_OP_FLAG_FADVISE_SEQUENTIAL | CEPH_OSD_OP_FLAG_FADVISE_DONTNEED;
 
-  while ( (r = store->read(
-             coll,
-             ghobject_t(
-               poid, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard),
-             pos,
-             cct->_conf->osd_deep_scrub_stride, bl,
-             fadvise_flags, true)) > 0) {
+  while (true) {
     handle.reset_tp_timeout();
+    r = store->read(
+         coll,
+         ghobject_t(
+           poid, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard),
+         pos,
+         cct->_conf->osd_deep_scrub_stride, bl,
+         fadvise_flags, true);
+    if (r <= 0)
+      break;
+
     h << bl;
     pos += bl.length();
     bl.clear();