From a37765c7c7d02bfeabe761a484e2eee6998de96f Mon Sep 17 00:00:00 2001 From: Mingxin Liu Date: Wed, 18 Jan 2017 18:31:52 +0800 Subject: [PATCH] osd/OSDMap: make get prev/next up osd more efficient what's more, in get_previous_up_osd_before(), if arg n = 0, run into endless loop Signed-off-by: Mingxin Liu --- src/osd/OSDMap.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/osd/OSDMap.h b/src/osd/OSDMap.h index 1d966e0321a..c662bdcea8d 100644 --- a/src/osd/OSDMap.h +++ b/src/osd/OSDMap.h @@ -525,6 +525,8 @@ public: } int get_next_up_osd_after(int n) const { + if (get_max_osd() == 0) + return -1; for (int i = n + 1; i != n; ++i) { if (i >= get_max_osd()) i = 0; @@ -537,6 +539,8 @@ public: } int get_previous_up_osd_before(int n) const { + if (get_max_osd() == 0) + return -1; for (int i = n - 1; i != n; --i) { if (i < 0) i = get_max_osd() - 1; -- 2.47.3