Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 767ea5c3 authored by Sage Weil's avatar Sage Weil
Browse files

ceph: do not feed bad device ids to crush



Do not feed bad (large) device ids to CRUSH.

Signed-off-by: default avatarSage Weil <sage@newdream.net>
parent c2e552e7
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -868,6 +868,11 @@ static int *calc_pg_raw(struct ceph_osdmap *osdmap, struct ceph_pg pgid,
	ps = le16_to_cpu(pgid.ps);
	preferred = (s16)le16_to_cpu(pgid.preferred);

	/* don't forcefeed bad device ids to crush */
	if (preferred >= osdmap->max_osd ||
	    preferred >= osdmap->crush->max_devices)
		preferred = -1;

	if (poolid >= osdmap->num_pools)
		return NULL;
	pool = &osdmap->pg_pool[poolid];