__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));
/*
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);
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,
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)
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;