From 15421e6bad76416a386e307b42c79c5c31ee1e65 Mon Sep 17 00:00:00 2001 From: Josh Durgin Date: Thu, 26 Apr 2018 14:49:01 -0400 Subject: [PATCH] osd/ECBackend: update misleading comment about EIO handling Signed-off-by: Josh Durgin --- src/osd/ECBackend.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/osd/ECBackend.cc b/src/osd/ECBackend.cc index 5202bccd75cb8..65206ec76e703 100644 --- a/src/osd/ECBackend.cc +++ b/src/osd/ECBackend.cc @@ -1193,8 +1193,9 @@ void ECBackend::handle_sub_read_reply( if ((err = ec_impl->minimum_to_decode(rop.want_to_read[iter->first], have, &dummy_minimum)) < 0) { dout(20) << __func__ << " minimum_to_decode failed" << dendl; if (rop.in_progress.empty()) { - // If we don't have enough copies and we haven't sent reads for all shards - // we can send the rest of the reads, if any. + // If we don't have enough copies, try other pg_shard_ts if available. + // During recovery there may be multiple osds with copies of the same shard, + // so getting EIO from one may result in multiple passes through this code path. if (!rop.do_redundant_reads) { int r = send_all_remaining_reads(iter->first, rop); if (r == 0) { -- 2.39.5