Lines Matching refs:end
55 static int crush_decode_uniform_bucket(void **p, void *end, in crush_decode_uniform_bucket() argument
58 dout("crush_decode_uniform_bucket %p to %p\n", *p, end); in crush_decode_uniform_bucket()
59 ceph_decode_need(p, end, (1+b->h.size) * sizeof(u32), bad); in crush_decode_uniform_bucket()
66 static int crush_decode_list_bucket(void **p, void *end, in crush_decode_list_bucket() argument
70 dout("crush_decode_list_bucket %p to %p\n", *p, end); in crush_decode_list_bucket()
77 ceph_decode_need(p, end, 2 * b->h.size * sizeof(u32), bad); in crush_decode_list_bucket()
87 static int crush_decode_tree_bucket(void **p, void *end, in crush_decode_tree_bucket() argument
91 dout("crush_decode_tree_bucket %p to %p\n", *p, end); in crush_decode_tree_bucket()
92 ceph_decode_8_safe(p, end, b->num_nodes, bad); in crush_decode_tree_bucket()
96 ceph_decode_need(p, end, b->num_nodes * sizeof(u32), bad); in crush_decode_tree_bucket()
104 static int crush_decode_straw_bucket(void **p, void *end, in crush_decode_straw_bucket() argument
108 dout("crush_decode_straw_bucket %p to %p\n", *p, end); in crush_decode_straw_bucket()
115 ceph_decode_need(p, end, 2 * b->h.size * sizeof(u32), bad); in crush_decode_straw_bucket()
125 static int crush_decode_straw2_bucket(void **p, void *end, in crush_decode_straw2_bucket() argument
129 dout("crush_decode_straw2_bucket %p to %p\n", *p, end); in crush_decode_straw2_bucket()
133 ceph_decode_need(p, end, b->h.size * sizeof(u32), bad); in crush_decode_straw2_bucket()
141 static int skip_name_map(void **p, void *end) in skip_name_map() argument
144 ceph_decode_32_safe(p, end, len ,bad); in skip_name_map()
148 ceph_decode_32_safe(p, end, strlen, bad); in skip_name_map()
156 static struct crush_map *crush_decode(void *pbyval, void *end) in crush_decode() argument
166 dout("crush_decode %p to %p len %d\n", *p, end, (int)(end - *p)); in crush_decode()
178 ceph_decode_need(p, end, 4*sizeof(u32), bad); in crush_decode()
202 ceph_decode_32_safe(p, end, alg, bad); in crush_decode()
208 i, (int)(*p-start), *p, end); in crush_decode()
235 ceph_decode_need(p, end, 4*sizeof(u32), bad); in crush_decode()
244 b->size, (int)(*p-start), *p, end); in crush_decode()
254 ceph_decode_need(p, end, b->size*sizeof(u32), bad); in crush_decode()
260 err = crush_decode_uniform_bucket(p, end, in crush_decode()
266 err = crush_decode_list_bucket(p, end, in crush_decode()
272 err = crush_decode_tree_bucket(p, end, in crush_decode()
278 err = crush_decode_straw_bucket(p, end, in crush_decode()
284 err = crush_decode_straw2_bucket(p, end, in crush_decode()
298 ceph_decode_32_safe(p, end, yes, bad); in crush_decode()
301 i, (int)(*p-start), *p, end); in crush_decode()
307 i, (int)(*p-start), *p, end); in crush_decode()
310 ceph_decode_32_safe(p, end, yes, bad); in crush_decode()
324 ceph_decode_copy_safe(p, end, &r->mask, 4, bad); /* 4 u8's */ in crush_decode()
325 ceph_decode_need(p, end, r->len*3*sizeof(u32), bad); in crush_decode()
335 err = skip_name_map(p, end); in crush_decode()
341 ceph_decode_need(p, end, 3*sizeof(u32), done); in crush_decode()
352 ceph_decode_need(p, end, sizeof(u32), done); in crush_decode()
357 ceph_decode_need(p, end, sizeof(u8), done); in crush_decode()
539 static int decode_pool(void **p, void *end, struct ceph_pg_pool_info *pi) in decode_pool() argument
545 ceph_decode_need(p, end, 2 + 4, bad); in decode_pool()
557 ceph_decode_need(p, end, len, bad); in decode_pool()
620 static int decode_pool_names(void **p, void *end, struct ceph_osdmap *map) in decode_pool_names() argument
626 ceph_decode_32_safe(p, end, num, bad); in decode_pool_names()
629 ceph_decode_64_safe(p, end, pool, bad); in decode_pool_names()
630 ceph_decode_32_safe(p, end, len, bad); in decode_pool_names()
632 ceph_decode_need(p, end, len, bad); in decode_pool_names()
746 static int get_osdmap_client_data_v(void **p, void *end, in get_osdmap_client_data_v() argument
751 ceph_decode_8_safe(p, end, struct_v, e_inval); in get_osdmap_client_data_v()
755 ceph_decode_8_safe(p, end, struct_compat, e_inval); in get_osdmap_client_data_v()
764 ceph_decode_8_safe(p, end, struct_v, e_inval); in get_osdmap_client_data_v()
765 ceph_decode_8_safe(p, end, struct_compat, e_inval); in get_osdmap_client_data_v()
777 ceph_decode_16_safe(p, end, version, e_inval); in get_osdmap_client_data_v()
795 static int __decode_pools(void **p, void *end, struct ceph_osdmap *map, in __decode_pools() argument
800 ceph_decode_32_safe(p, end, n, e_inval); in __decode_pools()
806 ceph_decode_64_safe(p, end, pool, e_inval); in __decode_pools()
823 ret = decode_pool(p, end, pi); in __decode_pools()
834 static int decode_pools(void **p, void *end, struct ceph_osdmap *map) in decode_pools() argument
836 return __decode_pools(p, end, map, false); in decode_pools()
839 static int decode_new_pools(void **p, void *end, struct ceph_osdmap *map) in decode_new_pools() argument
841 return __decode_pools(p, end, map, true); in decode_new_pools()
844 static int __decode_pg_temp(void **p, void *end, struct ceph_osdmap *map, in __decode_pg_temp() argument
849 ceph_decode_32_safe(p, end, n, e_inval); in __decode_pg_temp()
855 ret = ceph_decode_pgid(p, end, &pgid); in __decode_pg_temp()
859 ceph_decode_32_safe(p, end, len, e_inval); in __decode_pg_temp()
867 ceph_decode_need(p, end, len*sizeof(u32), e_inval); in __decode_pg_temp()
895 static int decode_pg_temp(void **p, void *end, struct ceph_osdmap *map) in decode_pg_temp() argument
897 return __decode_pg_temp(p, end, map, false); in decode_pg_temp()
900 static int decode_new_pg_temp(void **p, void *end, struct ceph_osdmap *map) in decode_new_pg_temp() argument
902 return __decode_pg_temp(p, end, map, true); in decode_new_pg_temp()
905 static int __decode_primary_temp(void **p, void *end, struct ceph_osdmap *map, in __decode_primary_temp() argument
910 ceph_decode_32_safe(p, end, n, e_inval); in __decode_primary_temp()
916 ret = ceph_decode_pgid(p, end, &pgid); in __decode_primary_temp()
920 ceph_decode_32_safe(p, end, osd, e_inval); in __decode_primary_temp()
949 static int decode_primary_temp(void **p, void *end, struct ceph_osdmap *map) in decode_primary_temp() argument
951 return __decode_primary_temp(p, end, map, false); in decode_primary_temp()
954 static int decode_new_primary_temp(void **p, void *end, in decode_new_primary_temp() argument
957 return __decode_primary_temp(p, end, map, true); in decode_new_primary_temp()
992 static int decode_primary_affinity(void **p, void *end, in decode_primary_affinity() argument
997 ceph_decode_32_safe(p, end, len, e_inval); in decode_primary_affinity()
1006 ceph_decode_need(p, end, map->max_osd*sizeof(u32), e_inval); in decode_primary_affinity()
1022 static int decode_new_primary_affinity(void **p, void *end, in decode_new_primary_affinity() argument
1027 ceph_decode_32_safe(p, end, n, e_inval); in decode_new_primary_affinity()
1032 ceph_decode_32_safe(p, end, osd, e_inval); in decode_new_primary_affinity()
1033 ceph_decode_32_safe(p, end, aff, e_inval); in decode_new_primary_affinity()
1051 static int osdmap_decode(void **p, void *end, struct ceph_osdmap *map) in osdmap_decode() argument
1060 dout("%s %p to %p len %d\n", __func__, *p, end, (int)(end - *p)); in osdmap_decode()
1062 err = get_osdmap_client_data_v(p, end, "full", &struct_v); in osdmap_decode()
1067 ceph_decode_need(p, end, sizeof(map->fsid) + sizeof(u32) + in osdmap_decode()
1075 err = decode_pools(p, end, map); in osdmap_decode()
1080 err = decode_pool_names(p, end, map); in osdmap_decode()
1084 ceph_decode_32_safe(p, end, map->pool_max, e_inval); in osdmap_decode()
1086 ceph_decode_32_safe(p, end, map->flags, e_inval); in osdmap_decode()
1089 ceph_decode_32_safe(p, end, max, e_inval); in osdmap_decode()
1097 ceph_decode_need(p, end, 3*sizeof(u32) + in osdmap_decode()
1120 err = decode_pg_temp(p, end, map); in osdmap_decode()
1126 err = decode_primary_temp(p, end, map); in osdmap_decode()
1133 err = decode_primary_affinity(p, end, map); in osdmap_decode()
1143 ceph_decode_32_safe(p, end, len, e_inval); in osdmap_decode()
1144 map->crush = crush_decode(*p, min(*p + len, end)); in osdmap_decode()
1153 *p = end; in osdmap_decode()
1162 err, epoch, (int)(*p - start), *p, start, end); in osdmap_decode()
1165 start, end - start, true); in osdmap_decode()
1172 struct ceph_osdmap *ceph_osdmap_decode(void **p, void *end) in ceph_osdmap_decode() argument
1185 ret = osdmap_decode(p, end, map); in ceph_osdmap_decode()
1197 struct ceph_osdmap *osdmap_apply_incremental(void **p, void *end, in osdmap_apply_incremental() argument
1213 dout("%s %p to %p len %d\n", __func__, *p, end, (int)(end - *p)); in osdmap_apply_incremental()
1215 err = get_osdmap_client_data_v(p, end, "inc", &struct_v); in osdmap_apply_incremental()
1220 ceph_decode_need(p, end, sizeof(fsid) + sizeof(u32) + sizeof(modified) + in osdmap_apply_incremental()
1230 ceph_decode_32_safe(p, end, len, e_inval); in osdmap_apply_incremental()
1233 len, *p, end); in osdmap_apply_incremental()
1234 return ceph_osdmap_decode(p, min(*p+len, end)); in osdmap_apply_incremental()
1238 ceph_decode_32_safe(p, end, len, e_inval); in osdmap_apply_incremental()
1240 newcrush = crush_decode(*p, min(*p+len, end)); in osdmap_apply_incremental()
1256 ceph_decode_32_safe(p, end, max, e_inval); in osdmap_apply_incremental()
1273 err = decode_new_pools(p, end, map); in osdmap_apply_incremental()
1278 err = decode_pool_names(p, end, map); in osdmap_apply_incremental()
1283 ceph_decode_32_safe(p, end, len, e_inval); in osdmap_apply_incremental()
1287 ceph_decode_64_safe(p, end, pool, e_inval); in osdmap_apply_incremental()
1294 ceph_decode_32_safe(p, end, len, e_inval); in osdmap_apply_incremental()
1298 ceph_decode_32_safe(p, end, osd, e_inval); in osdmap_apply_incremental()
1299 ceph_decode_copy_safe(p, end, &addr, sizeof(addr), e_inval); in osdmap_apply_incremental()
1308 ceph_decode_32_safe(p, end, len, e_inval); in osdmap_apply_incremental()
1312 ceph_decode_32_safe(p, end, osd, e_inval); in osdmap_apply_incremental()
1324 ceph_decode_32_safe(p, end, len, e_inval); in osdmap_apply_incremental()
1327 ceph_decode_need(p, end, sizeof(u32)*2, e_inval); in osdmap_apply_incremental()
1338 err = decode_new_pg_temp(p, end, map); in osdmap_apply_incremental()
1344 err = decode_new_primary_temp(p, end, map); in osdmap_apply_incremental()
1351 err = decode_new_primary_affinity(p, end, map); in osdmap_apply_incremental()
1357 *p = end; in osdmap_apply_incremental()
1366 err, epoch, (int)(*p - start), *p, start, end); in osdmap_apply_incremental()
1369 start, end - start, true); in osdmap_apply_incremental()