Lines Matching refs:hoid
1556 static u64 hoid_get_bitwise_key(const struct ceph_hobject_id *hoid) in DEFINE_RB_FUNCS2()
1558 return hoid->is_max ? 0x100000000ull : hoid->hash_reverse_bits; in DEFINE_RB_FUNCS2()
1561 static void hoid_get_effective_key(const struct ceph_hobject_id *hoid, in hoid_get_effective_key() argument
1564 if (hoid->key_len) { in hoid_get_effective_key()
1565 *pkey = hoid->key; in hoid_get_effective_key()
1566 *pkey_len = hoid->key_len; in hoid_get_effective_key()
1568 *pkey = hoid->oid; in hoid_get_effective_key()
1569 *pkey_len = hoid->oid_len; in hoid_get_effective_key()
1640 static int decode_hoid(void **p, void *end, struct ceph_hobject_id *hoid) in decode_hoid() argument
1656 hoid->key = ceph_extract_encoded_string(p, end, &hoid->key_len, in decode_hoid()
1658 if (IS_ERR(hoid->key)) { in decode_hoid()
1659 ret = PTR_ERR(hoid->key); in decode_hoid()
1660 hoid->key = NULL; in decode_hoid()
1664 hoid->oid = ceph_extract_encoded_string(p, end, &hoid->oid_len, in decode_hoid()
1666 if (IS_ERR(hoid->oid)) { in decode_hoid()
1667 ret = PTR_ERR(hoid->oid); in decode_hoid()
1668 hoid->oid = NULL; in decode_hoid()
1672 ceph_decode_64_safe(p, end, hoid->snapid, e_inval); in decode_hoid()
1673 ceph_decode_32_safe(p, end, hoid->hash, e_inval); in decode_hoid()
1674 ceph_decode_8_safe(p, end, hoid->is_max, e_inval); in decode_hoid()
1676 hoid->nspace = ceph_extract_encoded_string(p, end, &hoid->nspace_len, in decode_hoid()
1678 if (IS_ERR(hoid->nspace)) { in decode_hoid()
1679 ret = PTR_ERR(hoid->nspace); in decode_hoid()
1680 hoid->nspace = NULL; in decode_hoid()
1684 ceph_decode_64_safe(p, end, hoid->pool, e_inval); in decode_hoid()
1686 ceph_hoid_build_hash_cache(hoid); in decode_hoid()
1693 static int hoid_encoding_size(const struct ceph_hobject_id *hoid) in hoid_encoding_size() argument
1696 4 + hoid->key_len + 4 + hoid->oid_len + 4 + hoid->nspace_len; in hoid_encoding_size()
1699 static void encode_hoid(void **p, void *end, const struct ceph_hobject_id *hoid) in encode_hoid() argument
1701 ceph_start_encoding(p, 4, 3, hoid_encoding_size(hoid)); in encode_hoid()
1702 ceph_encode_string(p, end, hoid->key, hoid->key_len); in encode_hoid()
1703 ceph_encode_string(p, end, hoid->oid, hoid->oid_len); in encode_hoid()
1704 ceph_encode_64(p, hoid->snapid); in encode_hoid()
1705 ceph_encode_32(p, hoid->hash); in encode_hoid()
1706 ceph_encode_8(p, hoid->is_max); in encode_hoid()
1707 ceph_encode_string(p, end, hoid->nspace, hoid->nspace_len); in encode_hoid()
1708 ceph_encode_64(p, hoid->pool); in encode_hoid()
1711 static void free_hoid(struct ceph_hobject_id *hoid) in free_hoid() argument
1713 if (hoid) { in free_hoid()
1714 kfree(hoid->key); in free_hoid()
1715 kfree(hoid->oid); in free_hoid()
1716 kfree(hoid->nspace); in free_hoid()
1717 kfree(hoid); in free_hoid()
1751 const struct ceph_hobject_id *hoid) in lookup_containing_backoff() argument
1760 cmp = hoid_compare(hoid, cur->begin); in lookup_containing_backoff()
1764 if (hoid_compare(hoid, cur->end) < 0) in lookup_containing_backoff()
1805 static void hoid_fill_from_target(struct ceph_hobject_id *hoid, in hoid_fill_from_target() argument
1808 hoid->key = NULL; in hoid_fill_from_target()
1809 hoid->key_len = 0; in hoid_fill_from_target()
1810 hoid->oid = t->target_oid.name; in hoid_fill_from_target()
1811 hoid->oid_len = t->target_oid.name_len; in hoid_fill_from_target()
1812 hoid->snapid = CEPH_NOSNAP; in hoid_fill_from_target()
1813 hoid->hash = t->pgid.seed; in hoid_fill_from_target()
1814 hoid->is_max = false; in hoid_fill_from_target()
1816 hoid->nspace = t->target_oloc.pool_ns->str; in hoid_fill_from_target()
1817 hoid->nspace_len = t->target_oloc.pool_ns->len; in hoid_fill_from_target()
1819 hoid->nspace = NULL; in hoid_fill_from_target()
1820 hoid->nspace_len = 0; in hoid_fill_from_target()
1822 hoid->pool = t->target_oloc.pool; in hoid_fill_from_target()
1823 ceph_hoid_build_hash_cache(hoid); in hoid_fill_from_target()
1831 struct ceph_hobject_id hoid; in should_plug_request() local
1837 hoid_fill_from_target(&hoid, &req->r_t); in should_plug_request()
1838 backoff = lookup_containing_backoff(&spg->backoffs, &hoid); in should_plug_request()
4155 struct ceph_hobject_id hoid; in target_contained_by() local
4158 hoid_fill_from_target(&hoid, t); in target_contained_by()
4159 cmp = hoid_compare(&hoid, begin); in target_contained_by()
4160 return !cmp || (cmp > 0 && hoid_compare(&hoid, end) < 0); in target_contained_by()