Lines Matching refs:end

71 static int crush_decode_uniform_bucket(void **p, void *end,  in crush_decode_uniform_bucket()  argument
74 dout("crush_decode_uniform_bucket %p to %p\n", *p, end); in crush_decode_uniform_bucket()
75 ceph_decode_need(p, end, (1+b->h.size) * sizeof(u32), bad); in crush_decode_uniform_bucket()
82 static int crush_decode_list_bucket(void **p, void *end, in crush_decode_list_bucket() argument
86 dout("crush_decode_list_bucket %p to %p\n", *p, end); in crush_decode_list_bucket()
93 ceph_decode_need(p, end, 2 * b->h.size * sizeof(u32), bad); in crush_decode_list_bucket()
103 static int crush_decode_tree_bucket(void **p, void *end, in crush_decode_tree_bucket() argument
107 dout("crush_decode_tree_bucket %p to %p\n", *p, end); in crush_decode_tree_bucket()
108 ceph_decode_8_safe(p, end, b->num_nodes, bad); in crush_decode_tree_bucket()
112 ceph_decode_need(p, end, b->num_nodes * sizeof(u32), bad); in crush_decode_tree_bucket()
120 static int crush_decode_straw_bucket(void **p, void *end, in crush_decode_straw_bucket() argument
124 dout("crush_decode_straw_bucket %p to %p\n", *p, end); in crush_decode_straw_bucket()
131 ceph_decode_need(p, end, 2 * b->h.size * sizeof(u32), bad); in crush_decode_straw_bucket()
141 static int crush_decode_straw2_bucket(void **p, void *end, in crush_decode_straw2_bucket() argument
145 dout("crush_decode_straw2_bucket %p to %p\n", *p, end); in crush_decode_straw2_bucket()
149 ceph_decode_need(p, end, b->h.size * sizeof(u32), bad); in crush_decode_straw2_bucket()
184 static int decode_crush_names(void **p, void *end, struct rb_root *root) in DEFINE_RB_FUNCS()
188 ceph_decode_32_safe(p, end, n, e_inval); in DEFINE_RB_FUNCS()
194 ceph_decode_32_safe(p, end, id, e_inval); in DEFINE_RB_FUNCS()
195 ceph_decode_32_safe(p, end, name_len, e_inval); in DEFINE_RB_FUNCS()
196 ceph_decode_need(p, end, name_len, e_inval); in DEFINE_RB_FUNCS()
277 static u32 *decode_array_32_alloc(void **p, void *end, u32 *plen) in decode_array_32_alloc() argument
283 ceph_decode_32_safe(p, end, len, e_inval); in decode_array_32_alloc()
293 ceph_decode_need(p, end, len * sizeof(u32), e_inval); in decode_array_32_alloc()
311 static int decode_choose_arg(void **p, void *end, struct crush_choose_arg *arg) in decode_choose_arg() argument
315 ceph_decode_32_safe(p, end, arg->weight_set_size, e_inval); in decode_choose_arg()
328 w->weights = decode_array_32_alloc(p, end, &w->size); in decode_choose_arg()
337 arg->ids = decode_array_32_alloc(p, end, &arg->ids_size); in decode_choose_arg()
350 static int decode_choose_args(void **p, void *end, struct crush_map *c) in decode_choose_args() argument
356 ceph_decode_32_safe(p, end, num_choose_arg_maps, e_inval); in decode_choose_args()
364 ceph_decode_64_safe(p, end, arg_map->choose_args_index, in decode_choose_args()
374 ceph_decode_32_safe(p, end, num_buckets, e_inval); in decode_choose_args()
379 ceph_decode_32_safe(p, end, bucket_index, e_inval); in decode_choose_args()
384 ret = decode_choose_arg(p, end, arg); in decode_choose_args()
431 static struct crush_map *crush_decode(void *pbyval, void *end) in crush_decode() argument
440 dout("crush_decode %p to %p len %d\n", *p, end, (int)(end - *p)); in crush_decode()
456 ceph_decode_need(p, end, 4*sizeof(u32), bad); in crush_decode()
480 ceph_decode_32_safe(p, end, alg, bad); in crush_decode()
486 i, (int)(*p-start), *p, end); in crush_decode()
512 ceph_decode_need(p, end, 4*sizeof(u32), bad); in crush_decode()
521 b->size, (int)(*p-start), *p, end); in crush_decode()
527 ceph_decode_need(p, end, b->size*sizeof(u32), bad); in crush_decode()
533 err = crush_decode_uniform_bucket(p, end, in crush_decode()
539 err = crush_decode_list_bucket(p, end, in crush_decode()
545 err = crush_decode_tree_bucket(p, end, in crush_decode()
551 err = crush_decode_straw_bucket(p, end, in crush_decode()
557 err = crush_decode_straw2_bucket(p, end, in crush_decode()
571 ceph_decode_32_safe(p, end, yes, bad); in crush_decode()
574 i, (int)(*p-start), *p, end); in crush_decode()
580 i, (int)(*p-start), *p, end); in crush_decode()
583 ceph_decode_32_safe(p, end, yes, bad); in crush_decode()
595 ceph_decode_copy_safe(p, end, &r->mask, 4, bad); /* 4 u8's */ in crush_decode()
596 ceph_decode_need(p, end, r->len*3*sizeof(u32), bad); in crush_decode()
604 err = decode_crush_names(p, end, &c->type_names); in crush_decode()
608 err = decode_crush_names(p, end, &c->names); in crush_decode()
612 ceph_decode_skip_map(p, end, 32, string, bad); /* rule_name_map */ in crush_decode()
615 ceph_decode_need(p, end, 3*sizeof(u32), done); in crush_decode()
626 ceph_decode_need(p, end, sizeof(u32), done); in crush_decode()
631 ceph_decode_need(p, end, sizeof(u8), done); in crush_decode()
637 ceph_decode_need(p, end, sizeof(u8) + sizeof(u32), done); in crush_decode()
640 ceph_decode_need(p, end, sizeof(u8), done); in crush_decode()
645 if (*p != end) { in crush_decode()
647 ceph_decode_skip_map(p, end, 32, 32, bad); in crush_decode()
649 ceph_decode_skip_map(p, end, 32, string, bad); in crush_decode()
651 ceph_decode_skip_map_of_map(p, end, 32, 32, 32, bad); in crush_decode()
654 if (*p != end) { in crush_decode()
655 err = decode_choose_args(p, end, c); in crush_decode()
788 static int decode_pool(void **p, void *end, struct ceph_pg_pool_info *pi) in decode_pool() argument
794 ceph_decode_need(p, end, 2 + 4, bad); in decode_pool()
806 ceph_decode_need(p, end, len, bad); in decode_pool()
809 ceph_decode_need(p, end, 4 + 4 + 4, bad); in decode_pool()
818 ceph_decode_skip_n(p, end, 8 + 4 + 8 + 4, bad); in decode_pool()
821 ceph_decode_32_safe(p, end, num, bad); in decode_pool()
824 ceph_decode_skip_n(p, end, 8 + 2, bad); in decode_pool()
825 ceph_decode_skip_string(p, end, bad); in decode_pool()
829 ceph_decode_skip_map(p, end, 64, 64, bad); in decode_pool()
831 ceph_decode_need(p, end, 8 + 8 + 4, bad); in decode_pool()
837 ceph_decode_8_safe(p, end, pi->min_size, bad); in decode_pool()
843 ceph_decode_skip_n(p, end, 8 + 8, bad); in decode_pool()
847 ceph_decode_skip_set(p, end, 64, bad); in decode_pool()
849 ceph_decode_need(p, end, 8 + 1 + 8 + 8, bad); in decode_pool()
861 ceph_decode_skip_map(p, end, string, string, bad); in decode_pool()
865 ceph_decode_skip_n(p, end, 2, bad); in decode_pool()
866 ceph_decode_skip_string(p, end, bad); in decode_pool()
869 ceph_decode_skip_n(p, end, 4 + 4, bad); in decode_pool()
874 ceph_decode_skip_32(p, end, bad); in decode_pool()
878 ceph_decode_skip_n(p, end, 16 + 8 + 8, bad); in decode_pool()
882 ceph_decode_skip_string(p, end, bad); in decode_pool()
889 ceph_decode_32_safe(p, end, pi->last_force_request_resend, bad); in decode_pool()
895 ceph_decode_skip_32(p, end, bad); in decode_pool()
899 ceph_decode_skip_64(p, end, bad); in decode_pool()
903 ceph_decode_skip_32(p, end, bad); in decode_pool()
907 ceph_decode_skip_32(p, end, bad); in decode_pool()
911 ceph_decode_skip_8(p, end, bad); in decode_pool()
915 ceph_decode_skip_8(p, end, bad); in decode_pool()
919 ceph_decode_skip_n(p, end, 4 + 4, bad); in decode_pool()
923 ceph_decode_skip_n(p, end, 2, bad); in decode_pool()
924 ceph_decode_skip_string(p, end, bad); in decode_pool()
928 ceph_decode_32_safe(p, end, pi->last_force_request_resend, bad); in decode_pool()
940 static int decode_pool_names(void **p, void *end, struct ceph_osdmap *map) in decode_pool_names() argument
946 ceph_decode_32_safe(p, end, num, bad); in decode_pool_names()
949 ceph_decode_64_safe(p, end, pool, bad); in decode_pool_names()
950 ceph_decode_32_safe(p, end, len, bad); in decode_pool_names()
952 ceph_decode_need(p, end, len, bad); in decode_pool_names()
1278 static int get_osdmap_client_data_v(void **p, void *end, in get_osdmap_client_data_v() argument
1283 ceph_decode_8_safe(p, end, struct_v, e_inval); in get_osdmap_client_data_v()
1287 ceph_decode_8_safe(p, end, struct_compat, e_inval); in get_osdmap_client_data_v()
1296 ceph_decode_8_safe(p, end, struct_v, e_inval); in get_osdmap_client_data_v()
1297 ceph_decode_8_safe(p, end, struct_compat, e_inval); in get_osdmap_client_data_v()
1309 ceph_decode_16_safe(p, end, version, e_inval); in get_osdmap_client_data_v()
1327 static int __decode_pools(void **p, void *end, struct ceph_osdmap *map, in __decode_pools() argument
1332 ceph_decode_32_safe(p, end, n, e_inval); in __decode_pools()
1338 ceph_decode_64_safe(p, end, pool, e_inval); in __decode_pools()
1355 ret = decode_pool(p, end, pi); in __decode_pools()
1366 static int decode_pools(void **p, void *end, struct ceph_osdmap *map) in decode_pools() argument
1368 return __decode_pools(p, end, map, false); in decode_pools()
1371 static int decode_new_pools(void **p, void *end, struct ceph_osdmap *map) in decode_new_pools() argument
1373 return __decode_pools(p, end, map, true); in decode_new_pools()
1378 static int decode_pg_mapping(void **p, void *end, struct rb_root *mapping_root, in decode_pg_mapping() argument
1385 ceph_decode_32_safe(p, end, n, e_inval); in decode_pg_mapping()
1391 ret = ceph_decode_pgid(p, end, &pgid); in decode_pg_mapping()
1403 pg = fn(p, end, incremental); in decode_pg_mapping()
1420 static struct ceph_pg_mapping *__decode_pg_temp(void **p, void *end, in __decode_pg_temp() argument
1426 ceph_decode_32_safe(p, end, len, e_inval); in __decode_pg_temp()
1432 ceph_decode_need(p, end, len * sizeof(u32), e_inval); in __decode_pg_temp()
1447 static int decode_pg_temp(void **p, void *end, struct ceph_osdmap *map) in decode_pg_temp() argument
1449 return decode_pg_mapping(p, end, &map->pg_temp, __decode_pg_temp, in decode_pg_temp()
1453 static int decode_new_pg_temp(void **p, void *end, struct ceph_osdmap *map) in decode_new_pg_temp() argument
1455 return decode_pg_mapping(p, end, &map->pg_temp, __decode_pg_temp, in decode_new_pg_temp()
1459 static struct ceph_pg_mapping *__decode_primary_temp(void **p, void *end, in __decode_primary_temp() argument
1465 ceph_decode_32_safe(p, end, osd, e_inval); in __decode_primary_temp()
1480 static int decode_primary_temp(void **p, void *end, struct ceph_osdmap *map) in decode_primary_temp() argument
1482 return decode_pg_mapping(p, end, &map->primary_temp, in decode_primary_temp()
1486 static int decode_new_primary_temp(void **p, void *end, in decode_new_primary_temp() argument
1489 return decode_pg_mapping(p, end, &map->primary_temp, in decode_new_primary_temp()
1522 static int decode_primary_affinity(void **p, void *end, in decode_primary_affinity() argument
1527 ceph_decode_32_safe(p, end, len, e_inval); in decode_primary_affinity()
1536 ceph_decode_need(p, end, map->max_osd*sizeof(u32), e_inval); in decode_primary_affinity()
1552 static int decode_new_primary_affinity(void **p, void *end, in decode_new_primary_affinity() argument
1557 ceph_decode_32_safe(p, end, n, e_inval); in decode_new_primary_affinity()
1562 ceph_decode_32_safe(p, end, osd, e_inval); in decode_new_primary_affinity()
1563 ceph_decode_32_safe(p, end, aff, e_inval); in decode_new_primary_affinity()
1580 static struct ceph_pg_mapping *__decode_pg_upmap(void **p, void *end, in __decode_pg_upmap() argument
1583 return __decode_pg_temp(p, end, false); in __decode_pg_upmap()
1586 static int decode_pg_upmap(void **p, void *end, struct ceph_osdmap *map) in decode_pg_upmap() argument
1588 return decode_pg_mapping(p, end, &map->pg_upmap, __decode_pg_upmap, in decode_pg_upmap()
1592 static int decode_new_pg_upmap(void **p, void *end, struct ceph_osdmap *map) in decode_new_pg_upmap() argument
1594 return decode_pg_mapping(p, end, &map->pg_upmap, __decode_pg_upmap, in decode_new_pg_upmap()
1598 static int decode_old_pg_upmap(void **p, void *end, struct ceph_osdmap *map) in decode_old_pg_upmap() argument
1600 return decode_pg_mapping(p, end, &map->pg_upmap, NULL, true); in decode_old_pg_upmap()
1603 static struct ceph_pg_mapping *__decode_pg_upmap_items(void **p, void *end, in __decode_pg_upmap_items() argument
1609 ceph_decode_32_safe(p, end, len, e_inval); in __decode_pg_upmap_items()
1613 ceph_decode_need(p, end, 2 * len * sizeof(u32), e_inval); in __decode_pg_upmap_items()
1630 static int decode_pg_upmap_items(void **p, void *end, struct ceph_osdmap *map) in decode_pg_upmap_items() argument
1632 return decode_pg_mapping(p, end, &map->pg_upmap_items, in decode_pg_upmap_items()
1636 static int decode_new_pg_upmap_items(void **p, void *end, in decode_new_pg_upmap_items() argument
1639 return decode_pg_mapping(p, end, &map->pg_upmap_items, in decode_new_pg_upmap_items()
1643 static int decode_old_pg_upmap_items(void **p, void *end, in decode_old_pg_upmap_items() argument
1646 return decode_pg_mapping(p, end, &map->pg_upmap_items, NULL, true); in decode_old_pg_upmap_items()
1652 static int osdmap_decode(void **p, void *end, bool msgr2, in osdmap_decode() argument
1662 dout("%s %p to %p len %d\n", __func__, *p, end, (int)(end - *p)); in osdmap_decode()
1664 err = get_osdmap_client_data_v(p, end, "full", &struct_v); in osdmap_decode()
1669 ceph_decode_need(p, end, sizeof(map->fsid) + sizeof(u32) + in osdmap_decode()
1677 err = decode_pools(p, end, map); in osdmap_decode()
1682 err = decode_pool_names(p, end, map); in osdmap_decode()
1686 ceph_decode_32_safe(p, end, map->pool_max, e_inval); in osdmap_decode()
1688 ceph_decode_32_safe(p, end, map->flags, e_inval); in osdmap_decode()
1691 ceph_decode_32_safe(p, end, max, e_inval); in osdmap_decode()
1699 ceph_decode_need(p, end, 3*sizeof(u32) + in osdmap_decode()
1727 err = ceph_decode_entity_addrvec(p, end, msgr2, addr); in osdmap_decode()
1729 err = ceph_decode_entity_addr(p, end, addr); in osdmap_decode()
1737 err = decode_pg_temp(p, end, map); in osdmap_decode()
1743 err = decode_primary_temp(p, end, map); in osdmap_decode()
1750 err = decode_primary_affinity(p, end, map); in osdmap_decode()
1758 ceph_decode_32_safe(p, end, len, e_inval); in osdmap_decode()
1759 err = osdmap_set_crush(map, crush_decode(*p, min(*p + len, end))); in osdmap_decode()
1766 ceph_decode_skip_map_of_map(p, end, string, string, string, in osdmap_decode()
1771 err = decode_pg_upmap(p, end, map); in osdmap_decode()
1775 err = decode_pg_upmap_items(p, end, map); in osdmap_decode()
1784 *p = end; in osdmap_decode()
1793 err, epoch, (int)(*p - start), *p, start, end); in osdmap_decode()
1796 start, end - start, true); in osdmap_decode()
1803 struct ceph_osdmap *ceph_osdmap_decode(void **p, void *end, bool msgr2) in ceph_osdmap_decode() argument
1812 ret = osdmap_decode(p, end, msgr2, map); in ceph_osdmap_decode()
1829 static int decode_new_up_state_weight(void **p, void *end, u8 struct_v, in decode_new_up_state_weight() argument
1840 ceph_decode_32_safe(p, end, len, e_inval); in decode_new_up_state_weight()
1844 ceph_decode_skip_32(p, end, e_inval); in decode_new_up_state_weight()
1846 ret = ceph_decode_entity_addrvec(p, end, msgr2, &addr); in decode_new_up_state_weight()
1848 ret = ceph_decode_entity_addr(p, end, &addr); in decode_new_up_state_weight()
1854 ceph_decode_32_safe(p, end, len, e_inval); in decode_new_up_state_weight()
1856 ceph_decode_need(p, end, len, e_inval); in decode_new_up_state_weight()
1860 ceph_decode_32_safe(p, end, len, e_inval); in decode_new_up_state_weight()
1865 ceph_decode_need(p, end, 2*sizeof(u32), e_inval); in decode_new_up_state_weight()
1934 ret = ceph_decode_entity_addrvec(p, end, msgr2, &addr); in decode_new_up_state_weight()
1936 ret = ceph_decode_entity_addr(p, end, &addr); in decode_new_up_state_weight()
1957 struct ceph_osdmap *osdmap_apply_incremental(void **p, void *end, bool msgr2, in osdmap_apply_incremental() argument
1971 dout("%s %p to %p len %d\n", __func__, *p, end, (int)(end - *p)); in osdmap_apply_incremental()
1973 err = get_osdmap_client_data_v(p, end, "inc", &struct_v); in osdmap_apply_incremental()
1978 ceph_decode_need(p, end, sizeof(fsid) + sizeof(u32) + sizeof(modified) + in osdmap_apply_incremental()
1988 ceph_decode_32_safe(p, end, len, e_inval); in osdmap_apply_incremental()
1991 len, *p, end); in osdmap_apply_incremental()
1992 return ceph_osdmap_decode(p, min(*p+len, end), msgr2); in osdmap_apply_incremental()
1996 ceph_decode_32_safe(p, end, len, e_inval); in osdmap_apply_incremental()
1999 crush_decode(*p, min(*p + len, end))); in osdmap_apply_incremental()
2012 ceph_decode_32_safe(p, end, max, e_inval); in osdmap_apply_incremental()
2023 err = decode_new_pools(p, end, map); in osdmap_apply_incremental()
2028 err = decode_pool_names(p, end, map); in osdmap_apply_incremental()
2033 ceph_decode_32_safe(p, end, len, e_inval); in osdmap_apply_incremental()
2037 ceph_decode_64_safe(p, end, pool, e_inval); in osdmap_apply_incremental()
2044 err = decode_new_up_state_weight(p, end, struct_v, msgr2, map); in osdmap_apply_incremental()
2049 err = decode_new_pg_temp(p, end, map); in osdmap_apply_incremental()
2055 err = decode_new_primary_temp(p, end, map); in osdmap_apply_incremental()
2062 err = decode_new_primary_affinity(p, end, map); in osdmap_apply_incremental()
2069 ceph_decode_skip_map_of_map(p, end, string, string, string, in osdmap_apply_incremental()
2072 ceph_decode_skip_set(p, end, string, e_inval); in osdmap_apply_incremental()
2076 err = decode_new_pg_upmap(p, end, map); in osdmap_apply_incremental()
2080 err = decode_old_pg_upmap(p, end, map); in osdmap_apply_incremental()
2084 err = decode_new_pg_upmap_items(p, end, map); in osdmap_apply_incremental()
2088 err = decode_old_pg_upmap_items(p, end, map); in osdmap_apply_incremental()
2094 *p = end; in osdmap_apply_incremental()
2103 err, epoch, (int)(*p - start), *p, start, end); in osdmap_apply_incremental()
2106 start, end - start, true); in osdmap_apply_incremental()