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>
This commit is contained in:
Ilya Dryomov 2014-01-27 17:40:18 +02:00
parent 0b4af2e8c9
commit 22116525ba
4 changed files with 12 additions and 10 deletions

View file

@ -40,8 +40,7 @@ struct ceph_pg_pool_info {
};
struct ceph_object_locator {
uint64_t pool;
char *key;
s64 pool;
};
struct ceph_pg_mapping {