#define CEPH_OSD_PROTOCOL 8 /* cluster internal */
#define CEPH_MDS_PROTOCOL 9 /* cluster internal */
#define CEPH_MON_PROTOCOL 5 /* cluster internal */
-#define CEPH_OSDC_PROTOCOL 22 /* server/client */
+#define CEPH_OSDC_PROTOCOL 23 /* server/client */
#define CEPH_MDSC_PROTOCOL 32 /* server/client */
#define CEPH_MONC_PROTOCOL 15 /* server/client */
struct ceph_osdmap *map;
u16 version;
u32 len, max, i;
+ u8 ev;
int err = -EINVAL;
void *start = *p;
}
ceph_decode_32_safe(p, end, max, bad);
while (max--) {
- ceph_decode_need(p, end, 4+sizeof(map->pg_pool->v), bad);
+ ceph_decode_need(p, end, 4+1+sizeof(map->pg_pool->v), bad);
i = ceph_decode_32(p);
if (i >= map->num_pools)
goto bad;
+ ev = ceph_decode_8(p); /* encoding version */
ceph_decode_copy(p, &map->pg_pool[i].v,
sizeof(map->pg_pool->v));
calc_pg_masks(&map->pg_pool[i]);
/* new_pool */
ceph_decode_32_safe(p, end, len, bad);
while (len--) {
+ __u8 ev;
+
ceph_decode_32_safe(p, end, pool, bad);
if (pool >= map->num_pools) {
void *pg_pool = kcalloc(pool + 1,
map->pg_pool = pg_pool;
map->num_pools = pool+1;
}
+ ceph_decode_need(p, end, 1 + sizeof(map->pg_pool->v), bad);
+ ev = ceph_decode_8(p); /* encoding version */
ceph_decode_copy(p, &map->pg_pool[pool].v,
sizeof(map->pg_pool->v));
calc_pg_masks(&map->pg_pool[pool]);