libceph: make pgid_cmp() global
authorIlya Dryomov <idryomov@gmail.com>
Thu, 28 Apr 2016 14:07:23 +0000 (16:07 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Wed, 25 May 2016 22:36:25 +0000 (00:36 +0200)
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: Ilya Dryomov <idryomov@gmail.com>
include/linux/ceph/osdmap.h
net/ceph/osdmap.c

index 3fd978a1639b166fef4c547d47fe553db2696c74..7783237ab06c1d19b492fa5a15a99923ec2b6c89 100644 (file)
@@ -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 {
index 656384a8fd1e2df0f5a94e29f3ba965e66f8f4ba..3c7dc5e581ab815975fd8dc4ce2f4dd3d5fde962 100644 (file)
@@ -380,23 +380,24 @@ bad:
        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) {