libceph: start using oloc abstraction
authorIlya Dryomov <ilya.dryomov@inktank.com>
Mon, 27 Jan 2014 15:40:18 +0000 (17:40 +0200)
committerIlya Dryomov <ilya.dryomov@inktank.com>
Mon, 27 Jan 2014 21:57:03 +0000 (23:57 +0200)
commit22116525baec1d63f4878eaa92f0b57946a78819
tree8630a9fdeec976e58fea4f0c131dabbf193a82f3
parent0b4af2e8c9f3fc9c31d2f9374b79af2c890ef897
libceph: start using oloc abstraction

Instead of relying on pool fields in ceph_file_layout (for mapping) and
ceph_pg (for enconding), start using ceph_object_locator (oloc)
abstraction.  Note that userspace oloc currently consists of pool, key,
nspace and hash fields, while this one contains only a pool.  This is
OK, because at this point we only send (i.e. encode) olocs and never
have to receive (i.e. decode) them.

This makes keeping a copy of ceph_file_layout in every osd request
unnecessary, so ceph_osd_request::r_file_layout field is nuked.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
drivers/block/rbd.c
include/linux/ceph/osd_client.h
include/linux/ceph/osdmap.h
net/ceph/osd_client.c