Lines Matching refs:pi
62 static void calc_pg_masks(struct ceph_pg_pool_info *pi) in calc_pg_masks() argument
64 pi->pg_num_mask = (1 << calc_bits_of(pi->pg_num-1)) - 1; in calc_pg_masks()
65 pi->pgp_num_mask = (1 << calc_bits_of(pi->pgp_num-1)) - 1; in calc_pg_masks()
745 struct ceph_pg_pool_info *pi; in ceph_pg_pool_name_by_id() local
753 pi = lookup_pg_pool(&map->pg_pools, id); in ceph_pg_pool_name_by_id()
754 return pi ? pi->name : NULL; in ceph_pg_pool_name_by_id()
763 struct ceph_pg_pool_info *pi = in ceph_pg_poolid_by_name() local
765 if (pi->name && strcmp(pi->name, name) == 0) in ceph_pg_poolid_by_name()
766 return pi->id; in ceph_pg_poolid_by_name()
774 struct ceph_pg_pool_info *pi; in ceph_pg_pool_flags() local
776 pi = lookup_pg_pool(&map->pg_pools, id); in ceph_pg_pool_flags()
777 return pi ? pi->flags : 0; in ceph_pg_pool_flags()
781 static void __remove_pg_pool(struct rb_root *root, struct ceph_pg_pool_info *pi) in __remove_pg_pool() argument
783 erase_pg_pool(root, pi); in __remove_pg_pool()
784 kfree(pi->name); in __remove_pg_pool()
785 kfree(pi); in __remove_pg_pool()
788 static int decode_pool(void **p, void *end, struct ceph_pg_pool_info *pi) in decode_pool() argument
809 pi->type = ceph_decode_8(p); in decode_pool()
810 pi->size = ceph_decode_8(p); in decode_pool()
811 pi->crush_ruleset = ceph_decode_8(p); in decode_pool()
812 pi->object_hash = ceph_decode_8(p); in decode_pool()
814 pi->pg_num = ceph_decode_32(p); in decode_pool()
815 pi->pgp_num = ceph_decode_32(p); in decode_pool()
835 pi->flags = ceph_decode_64(p); in decode_pool()
839 pi->min_size = ceph_decode_8(p); in decode_pool()
841 pi->min_size = pi->size - pi->size / 2; in decode_pool()
854 pi->read_tier = ceph_decode_64(p); in decode_pool()
855 pi->write_tier = ceph_decode_64(p); in decode_pool()
857 pi->read_tier = -1; in decode_pool()
858 pi->write_tier = -1; in decode_pool()
905 pi->last_force_request_resend = ceph_decode_32(p); in decode_pool()
907 pi->last_force_request_resend = 0; in decode_pool()
940 pi->last_force_request_resend = ceph_decode_32(p); in decode_pool()
945 calc_pg_masks(pi); in decode_pool()
954 struct ceph_pg_pool_info *pi; in decode_pool_names() local
965 pi = lookup_pg_pool(&map->pg_pools, pool); in decode_pool_names()
966 if (pi) { in decode_pool_names()
971 kfree(pi->name); in decode_pool_names()
972 pi->name = name; in decode_pool_names()
973 dout(" name is %s\n", pi->name); in decode_pool_names()
1180 struct ceph_pg_pool_info *pi = in ceph_osdmap_destroy() local
1183 __remove_pg_pool(&map->pg_pools, pi); in ceph_osdmap_destroy()
1346 struct ceph_pg_pool_info *pi; in __decode_pools() local
1352 pi = lookup_pg_pool(&map->pg_pools, pool); in __decode_pools()
1353 if (!incremental || !pi) { in __decode_pools()
1354 pi = kzalloc(sizeof(*pi), GFP_NOFS); in __decode_pools()
1355 if (!pi) in __decode_pools()
1358 RB_CLEAR_NODE(&pi->node); in __decode_pools()
1359 pi->id = pool; in __decode_pools()
1361 if (!__insert_pg_pool(&map->pg_pools, pi)) { in __decode_pools()
1362 kfree(pi); in __decode_pools()
1367 ret = decode_pool(p, end, pi); in __decode_pools()
2043 struct ceph_pg_pool_info *pi; in osdmap_apply_incremental() local
2046 pi = lookup_pg_pool(&map->pg_pools, pool); in osdmap_apply_incremental()
2047 if (pi) in osdmap_apply_incremental()
2048 __remove_pg_pool(&map->pg_pools, pi); in osdmap_apply_incremental()
2393 void __ceph_object_locator_to_pg(struct ceph_pg_pool_info *pi, in __ceph_object_locator_to_pg() argument
2398 WARN_ON(pi->id != oloc->pool); in __ceph_object_locator_to_pg()
2402 raw_pgid->seed = ceph_str_hash(pi->object_hash, oid->name, in __ceph_object_locator_to_pg()
2418 raw_pgid->seed = ceph_str_hash(pi->object_hash, buf, total); in __ceph_object_locator_to_pg()
2432 struct ceph_pg_pool_info *pi; in ceph_object_locator_to_pg() local
2434 pi = ceph_pg_pool_by_id(osdmap, oloc->pool); in ceph_object_locator_to_pg()
2435 if (!pi) in ceph_object_locator_to_pg()
2438 __ceph_object_locator_to_pg(pi, oid, oloc, raw_pgid); in ceph_object_locator_to_pg()
2446 static void raw_pg_to_pg(struct ceph_pg_pool_info *pi, in raw_pg_to_pg() argument
2451 pgid->seed = ceph_stable_mod(raw_pgid->seed, pi->pg_num, in raw_pg_to_pg()
2452 pi->pg_num_mask); in raw_pg_to_pg()
2460 static u32 raw_pg_to_pps(struct ceph_pg_pool_info *pi, in raw_pg_to_pps() argument
2463 if (pi->flags & CEPH_POOL_FLAG_HASHPSPOOL) { in raw_pg_to_pps()
2467 pi->pgp_num, in raw_pg_to_pps()
2468 pi->pgp_num_mask), in raw_pg_to_pps()
2477 return ceph_stable_mod(raw_pgid->seed, pi->pgp_num, in raw_pg_to_pps()
2478 pi->pgp_num_mask) + in raw_pg_to_pps()
2516 struct ceph_pg_pool_info *pi, in remove_nonexistent_osds() argument
2521 if (ceph_can_shift_osds(pi)) { in remove_nonexistent_osds()
2550 struct ceph_pg_pool_info *pi, in pg_to_raw_osds() argument
2555 u32 pps = raw_pg_to_pps(pi, raw_pgid); in pg_to_raw_osds()
2563 ruleno = crush_find_rule(osdmap->crush, pi->crush_ruleset, pi->type, in pg_to_raw_osds()
2564 pi->size); in pg_to_raw_osds()
2567 pi->id, pi->crush_ruleset, pi->type, pi->size); in pg_to_raw_osds()
2571 if (pi->size > ARRAY_SIZE(raw->osds)) { in pg_to_raw_osds()
2573 pi->id, pi->crush_ruleset, pi->type, pi->size, in pg_to_raw_osds()
2578 len = do_crush(osdmap, ruleno, pps, raw->osds, pi->size, in pg_to_raw_osds()
2579 osdmap->osd_weight, osdmap->max_osd, pi->id); in pg_to_raw_osds()
2582 len, ruleno, pi->id, pi->crush_ruleset, pi->type, in pg_to_raw_osds()
2583 pi->size); in pg_to_raw_osds()
2588 remove_nonexistent_osds(osdmap, pi, raw); in pg_to_raw_osds()
2660 struct ceph_pg_pool_info *pi, in raw_to_up_osds() argument
2668 if (ceph_can_shift_osds(pi)) { in raw_to_up_osds()
2695 struct ceph_pg_pool_info *pi, in apply_primary_affinity() argument
2754 if (ceph_can_shift_osds(pi) && pos > 0) { in apply_primary_affinity()
2771 struct ceph_pg_pool_info *pi, in get_temp_osds() argument
2785 if (ceph_can_shift_osds(pi)) in get_temp_osds()
2817 struct ceph_pg_pool_info *pi, in ceph_pg_to_up_acting_osds() argument
2825 WARN_ON(pi->id != raw_pgid->pool); in ceph_pg_to_up_acting_osds()
2826 raw_pg_to_pg(pi, raw_pgid, &pgid); in ceph_pg_to_up_acting_osds()
2828 pg_to_raw_osds(osdmap, pi, raw_pgid, up, &pps); in ceph_pg_to_up_acting_osds()
2830 raw_to_up_osds(osdmap, pi, up); in ceph_pg_to_up_acting_osds()
2831 apply_primary_affinity(osdmap, pi, pps, up); in ceph_pg_to_up_acting_osds()
2832 get_temp_osds(osdmap, pi, &pgid, acting); in ceph_pg_to_up_acting_osds()
2843 struct ceph_pg_pool_info *pi, in ceph_pg_to_primary_shard() argument
2851 WARN_ON(pi->id != raw_pgid->pool); in ceph_pg_to_primary_shard()
2852 raw_pg_to_pg(pi, raw_pgid, &pgid); in ceph_pg_to_primary_shard()
2854 if (ceph_can_shift_osds(pi)) { in ceph_pg_to_primary_shard()
2860 ceph_pg_to_up_acting_osds(osdmap, pi, &pgid, &up, &acting); in ceph_pg_to_primary_shard()
2878 struct ceph_pg_pool_info *pi; in ceph_pg_to_acting_primary() local
2881 pi = ceph_pg_pool_by_id(osdmap, raw_pgid->pool); in ceph_pg_to_acting_primary()
2882 if (!pi) in ceph_pg_to_acting_primary()
2885 ceph_pg_to_up_acting_osds(osdmap, pi, raw_pgid, &up, &acting); in ceph_pg_to_acting_primary()