crush: do is_out test only if we do not collide
The is_out() test may require an additional hashing operation, so we should skip it whenever possible. Reflects ceph.git commit db107cc7f15cf2481894add325dc93e33479f529. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
Родитель
df963ea8a0
Коммит
98ba6af728
|
@ -552,14 +552,12 @@ static int crush_choose_firstn(const struct crush_map *map,
|
|||
}
|
||||
}
|
||||
|
||||
if (!reject) {
|
||||
if (!reject && !collide) {
|
||||
/* out? */
|
||||
if (itemtype == 0)
|
||||
reject = is_out(map, weight,
|
||||
weight_max,
|
||||
item, x);
|
||||
else
|
||||
reject = 0;
|
||||
}
|
||||
|
||||
reject:
|
||||
|
|
Загрузка…
Ссылка в новой задаче