From c5e64e1f3c9475537b2ea49e9630758c928dd5c6 Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Thu, 7 May 2009 10:47:32 -0700 Subject: [PATCH] kclient: a few sparse fixes --- src/include/ceph_fs.h | 6 +++--- src/kernel/mdsmap.c | 2 +- src/kernel/osd_client.c | 6 ++++-- src/kernel/osdmap.c | 12 ++++++------ 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/include/ceph_fs.h b/src/include/ceph_fs.h index c2e0195f3b2cd..d161e0eeb5353 100644 --- a/src/include/ceph_fs.h +++ b/src/include/ceph_fs.h @@ -323,9 +323,9 @@ struct ceph_pg_pool { __u8 type; __u8 size; __u8 crush_ruleset; - __u32 pg_num, pgp_num; - __u32 lpg_num, lpgp_num; - __u32 last_change; /* most recent epoch changed */ + __le32 pg_num, pgp_num; + __le32 lpg_num, lpgp_num; + __le32 last_change; /* most recent epoch changed */ } __attribute__ ((packed)); /* diff --git a/src/kernel/mdsmap.c b/src/kernel/mdsmap.c index 87a091aa9f0a0..b8fb0677d3894 100644 --- a/src/kernel/mdsmap.c +++ b/src/kernel/mdsmap.c @@ -118,7 +118,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end) badmem: err = -ENOMEM; bad: - derr(0, "corrupt mdsmap"); + derr(0, "corrupt mdsmap\n"); ceph_mdsmap_destroy(m); return ERR_PTR(-EINVAL); } diff --git a/src/kernel/osd_client.c b/src/kernel/osd_client.c index 2022b8cf47ec0..bedad957d2ba8 100644 --- a/src/kernel/osd_client.c +++ b/src/kernel/osd_client.c @@ -342,10 +342,12 @@ static int map_osds(struct ceph_osd_client *osdc, if (req->r_pgid.pg.preferred >= 0) pps = ceph_stable_mod(req->r_pgid.pg.ps, - pool->v.lpgp_num, pool->lpgp_num_mask); + le32_to_cpu(pool->v.lpgp_num), + pool->lpgp_num_mask); else pps = ceph_stable_mod(req->r_pgid.pg.ps, - pool->v.pgp_num, pool->pgp_num_mask); + le32_to_cpu(pool->v.pgp_num), + pool->pgp_num_mask); num = crush_do_rule(osdc->osdmap->crush, ruleno, pps, osds, min_t(int, pool->v.size, ARRAY_SIZE(osds)), req->r_pgid.pg.preferred, osdc->osdmap->osd_weight); diff --git a/src/kernel/osdmap.c b/src/kernel/osdmap.c index 4b3c43573feac..cdcb34083fc8e 100644 --- a/src/kernel/osdmap.c +++ b/src/kernel/osdmap.c @@ -511,16 +511,16 @@ struct ceph_osdmap *apply_incremental(void **p, void *end, while (len--) { ceph_decode_32_safe(p, end, pool, bad); if (pool >= map->num_pools) { - void *p = kzalloc((pool+1) * sizeof(*map->pg_pool), + void *pg_pool = kzalloc((pool+1) * sizeof(*map->pg_pool), GFP_NOFS); - if (!p) { + if (!pg_pool) { err = -ENOMEM; goto bad; } - memcpy(p, map->pg_pool, + memcpy(pg_pool, map->pg_pool, map->num_pools * sizeof(*map->pg_pool)); kfree(map->pg_pool); - map->pg_pool = p; + map->pg_pool = pg_pool; map->num_pools = pool+1; } ceph_decode_copy(p, &map->pg_pool[pool].v, @@ -650,7 +650,7 @@ int ceph_calc_object_layout(struct ceph_object_layout *ol, u64 ino = le64_to_cpu(oid->ino); unsigned bno = le32_to_cpu(oid->bno); s32 preferred = (s32)le32_to_cpu(fl->fl_pg_preferred); - int poolid = le16_to_cpu(fl->fl_pg_pool); + int poolid = le32_to_cpu(fl->fl_pg_pool); struct ceph_pg_pool_info *pool; if (poolid >= osdmap->num_pools) @@ -668,7 +668,7 @@ int ceph_calc_object_layout(struct ceph_object_layout *ol, pgid.pg64 = 0; /* start with it zeroed out */ pgid.pg.ps = bno + crush_hash32_2(ino, ino>>32); pgid.pg.preferred = preferred; - pgid.pg.pool = fl->fl_pg_pool; + pgid.pg.pool = le32_to_cpu(fl->fl_pg_pool); ol->ol_pgid = cpu_to_le64(pgid.pg64); ol->ol_stripe_unit = fl->fl_object_stripe_unit; -- 2.39.5