]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
scrub: do not assign value if read error for ECBackend 6568/head
authorLi Wang <li.wang@kylin-cloud.com>
Mon, 16 Nov 2015 04:15:54 +0000 (12:15 +0800)
committerLi Wang <li.wang@kylin-cloud.com>
Mon, 16 Nov 2015 04:17:49 +0000 (12:17 +0800)
Signed-off-by: Li Wang <li.wang@kylin-cloud.com>
src/osd/ECBackend.cc

index 47e3b2f88773f0899fa4e2415fe4cc35c5bdaf7e..a79ba096da6f32ed113c63f233101b5d3c55d34b 100644 (file)
@@ -2088,6 +2088,7 @@ void ECBackend::be_deep_scrub(
     dout(0) << "_scan_list  " << poid << " got "
            << r << " on read, read_error" << dendl;
     o.read_error = true;
+    return;
   }
 
   ECUtil::HashInfoRef hinfo = get_hash_info(poid, false);
@@ -2095,15 +2096,18 @@ void ECBackend::be_deep_scrub(
     dout(0) << "_scan_list  " << poid << " could not retrieve hash info" << dendl;
     o.read_error = true;
     o.digest_present = false;
+    return;
   } else {
     if (hinfo->get_chunk_hash(get_parent()->whoami_shard().shard) != h.digest()) {
       dout(0) << "_scan_list  " << poid << " got incorrect hash on read" << dendl;
       o.read_error = true;
+      return;
     }
 
     if (hinfo->get_total_chunk_size() != pos) {
       dout(0) << "_scan_list  " << poid << " got incorrect size on read" << dendl;
       o.read_error = true;
+      return;
     }
 
     /* We checked above that we match our own stored hash.  We cannot