diff --git a/main.cpp b/main.cpp index 4a69314..bb31684 100644 --- a/main.cpp +++ b/main.cpp @@ -314,13 +314,12 @@ static void _main(int argc, const char *argv[]) auto location = rados_utils.get_osd_location(osd); location["osd"] = std::to_string(osd); - osd2location[osd] = location; - if (location.find(settings->mode) != location.end()) { const auto &osd_loc = location.at(settings->mode); if (settings->specific_bench_item.empty() || osd_loc == settings->specific_bench_item) { + osd2location[osd] = location; bench_items.insert(osd_loc); } } @@ -345,19 +344,18 @@ static void _main(int argc, const char *argv[]) unsigned int osd = rados_utils.get_obj_acting_primary(name, settings->pool); - const auto &location = osd2location.at(osd); - const auto &bench_item = location.at(settings->mode); - if (!bench_items.count(bench_item)) - continue; - - auto &names = name2location[bench_item]; - if (names.size() >= (unsigned)settings->threads * 16) + if (osd2location.find(osd) != osd2location.end()) { - bench_items.erase(bench_item); - continue; + const auto &location = osd2location.at(osd); + const auto &bench_item = location.at(settings->mode); + auto &names = name2location[bench_item]; + if (names.size() >= (unsigned)settings->threads * 16) + { + bench_items.erase(bench_item); + continue; + } + names.push_back(name); } - - names.push_back(name); } IoCtx ioctx;