From f02a51ffead3112876be27092c0f07590b77ad51 Mon Sep 17 00:00:00 2001
From: Li Wang
Date: Mon, 16 Nov 2015 12:15:54 +0800
Subject: [PATCH] scrub: do not assign value if read error for ECBackend
Signed-off-by: Li Wang
---
src/osd/ECBackend.cc | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/osd/ECBackend.cc b/src/osd/ECBackend.cc
index 47e3b2f88773..a79ba096da6f 100644
--- a/src/osd/ECBackend.cc
+++ b/src/osd/ECBackend.cc
@@ -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
--
2.47.3