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

Commit f984cb76 authored by Ilya Dryomov's avatar Ilya Dryomov
Browse files

libceph: make pgid_cmp() global



calc_target() code is going to need to know how to compare PGs.  Take
lhs and rhs pgid by const * while at it.

Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
parent f81f1633
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@ struct ceph_pg {
	uint32_t seed;
};

int ceph_pg_compare(const struct ceph_pg *lhs, const struct ceph_pg *rhs);

#define CEPH_POOL_FLAG_HASHPSPOOL  1

struct ceph_pg_pool_info {
+12 −11
Original line number Diff line number Diff line
@@ -380,23 +380,24 @@ static struct crush_map *crush_decode(void *pbyval, void *end)
	return ERR_PTR(err);
}

/*
 * rbtree of pg_mapping for handling pg_temp (explicit mapping of pgid
 * to a set of osds) and primary_temp (explicit primary setting)
 */
static int pgid_cmp(struct ceph_pg l, struct ceph_pg r)
int ceph_pg_compare(const struct ceph_pg *lhs, const struct ceph_pg *rhs)
{
	if (l.pool < r.pool)
	if (lhs->pool < rhs->pool)
		return -1;
	if (l.pool > r.pool)
	if (lhs->pool > rhs->pool)
		return 1;
	if (l.seed < r.seed)
	if (lhs->seed < rhs->seed)
		return -1;
	if (l.seed > r.seed)
	if (lhs->seed > rhs->seed)
		return 1;

	return 0;
}

/*
 * rbtree of pg_mapping for handling pg_temp (explicit mapping of pgid
 * to a set of osds) and primary_temp (explicit primary setting)
 */
static int __insert_pg_mapping(struct ceph_pg_mapping *new,
			       struct rb_root *root)
{
@@ -409,7 +410,7 @@ static int __insert_pg_mapping(struct ceph_pg_mapping *new,
	while (*p) {
		parent = *p;
		pg = rb_entry(parent, struct ceph_pg_mapping, node);
		c = pgid_cmp(new->pgid, pg->pgid);
		c = ceph_pg_compare(&new->pgid, &pg->pgid);
		if (c < 0)
			p = &(*p)->rb_left;
		else if (c > 0)
@@ -432,7 +433,7 @@ static struct ceph_pg_mapping *__lookup_pg_mapping(struct rb_root *root,

	while (n) {
		pg = rb_entry(n, struct ceph_pg_mapping, node);
		c = pgid_cmp(pgid, pg->pgid);
		c = ceph_pg_compare(&pgid, &pg->pgid);
		if (c < 0) {
			n = n->rb_left;
		} else if (c > 0) {