libceph: define ceph_decode_pgid() only once

There are two basically identical definitions of __decode_pgid()
in libceph, one in "net/ceph/osdmap.c" and the other in
"net/ceph/osd_client.c".  Get rid of both, and instead define
a single inline version in "include/linux/ceph/osdmap.h".

Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
This commit is contained in:
Alex Elder 2013-04-01 18:58:26 -05:00 committed by Sage Weil
parent 8058fd4503
commit ef4859d647
3 changed files with 27 additions and 41 deletions

View file

@ -1268,26 +1268,6 @@ static void complete_request(struct ceph_osd_request *req)
complete_all(&req->r_safe_completion); /* fsync waiter */
}
static int __decode_pgid(void **p, void *end, struct ceph_pg *pgid)
{
__u8 v;
ceph_decode_need(p, end, 1 + 8 + 4 + 4, bad);
v = ceph_decode_8(p);
if (v > 1) {
pr_warning("do not understand pg encoding %d > 1", v);
return -EINVAL;
}
pgid->pool = ceph_decode_64(p);
pgid->seed = ceph_decode_32(p);
*p += 4;
return 0;
bad:
pr_warning("incomplete pg encoding");
return -EINVAL;
}
/*
* handle osd op reply. either call the callback if it is specified,
* or do the completion to wake up the waiting thread.
@ -1321,7 +1301,7 @@ static void handle_reply(struct ceph_osd_client *osdc, struct ceph_msg *msg,
ceph_decode_need(&p, end, object_len, bad);
p += object_len;
err = __decode_pgid(&p, end, &pg);
err = ceph_decode_pgid(&p, end, &pg);
if (err)
goto bad;