summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-02-21 11:15:58 -0800
committerSage Weil <sage@inktank.com>2013-02-21 11:32:39 -0800
commit4277265d99647c9fe950ba627e5d86234cfd70a9 (patch)
tree071485b62e1a5d4af7388f6917c60ff4d60b75c5
parentc8d0889df59d31656c84f29d0bfa56a6ca14bf32 (diff)
downloadceph-4277265d99647c9fe950ba627e5d86234cfd70a9.tar.gz
osd: an interval can't go readwrite if its acting is empty
Let's not forget that min_size can be zero. Fixes: #4159 Signed-off-by: Sage Weil <sage@inktank.com>
-rw-r--r--src/osd/osd_types.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc
index 6953f182000..cd75bedfed9 100644
--- a/src/osd/osd_types.cc
+++ b/src/osd/osd_types.cc
@@ -1613,7 +1613,8 @@ bool pg_interval_t::check_new_interval(
i.acting = old_acting;
i.up = old_up;
- if (i.acting.size() >=
+ if (!i.acting.empty() &&
+ i.acting.size() >=
osdmap->get_pools().find(pool_id)->second.min_size) {
if (lastmap->get_up_thru(i.acting[0]) >= i.first &&
lastmap->get_up_from(i.acting[0]) <= i.first) {