From c281e1e073dbb302d2173512e9850ecda28a882a Mon Sep 17 00:00:00 2001 From: Colin Patrick McCabe Date: Tue, 23 Nov 2010 22:04:53 -0800 Subject: [PATCH] osd: mark_all_unfound_as_lost: wake waiters Signed-off-by: Colin McCabe --- src/osd/PG.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index aece84dfbefd6..a5ad656c643d2 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -1051,6 +1051,14 @@ void PG::mark_all_unfound_as_lost() dout(10) << __func__ << ": created event " << e << dendl; + // Wake anyone waiting for this object. Now that it's been marked as lost, + // we will just return an error code. + hash_map >::iterator wmo = + waiting_for_missing_object.find(lost_soid); + if (wmo != waiting_for_missing_object.end()) { + osd->take_waiters(wmo->second); + } + missing.missing.erase(lost_soid); del.erase(d++); } -- 2.39.5