X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fcommon%2Fscrub_types.cc;fp=src%2Fceph%2Fsrc%2Fcommon%2Fscrub_types.cc;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=abc575d7a0db5fa3d4e1850d69e4a9365c299f5e;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/common/scrub_types.cc b/src/ceph/src/common/scrub_types.cc deleted file mode 100644 index abc575d..0000000 --- a/src/ceph/src/common/scrub_types.cc +++ /dev/null @@ -1,292 +0,0 @@ -#include "scrub_types.h" - -using namespace librados; - -void object_id_wrapper::encode(bufferlist& bl) const -{ - ENCODE_START(1, 1, bl); - ::encode(name, bl); - ::encode(nspace, bl); - ::encode(locator, bl); - ::encode(snap, bl); - ENCODE_FINISH(bl); -} - -void object_id_wrapper::decode(bufferlist::iterator& bp) -{ - DECODE_START(1, bp); - ::decode(name, bp); - ::decode(nspace, bp); - ::decode(locator, bp); - ::decode(snap, bp); - DECODE_FINISH(bp); -} - -static void encode(const object_id_t& obj, bufferlist& bl) -{ - reinterpret_cast(obj).encode(bl); -} - -void osd_shard_wrapper::encode(bufferlist& bl) const -{ - ENCODE_START(1, 1, bl); - ::encode(osd, bl); - ::encode(shard, bl); - ENCODE_FINISH(bl); -} - -void osd_shard_wrapper::decode(bufferlist::iterator& bp) -{ - DECODE_START(1, bp); - ::decode(osd, bp); - ::decode(shard, bp); - DECODE_FINISH(bp); -} - -namespace librados { - static void encode(const osd_shard_t& shard, bufferlist& bl) - { - reinterpret_cast(shard).encode(bl); - } -} - -void shard_info_wrapper::set_object(const ScrubMap::object& object) -{ - for (auto attr : object.attrs) { - bufferlist bl; - bl.push_back(attr.second); - attrs.insert(std::make_pair(attr.first, std::move(bl))); - } - size = object.size; - if (object.omap_digest_present) { - omap_digest_present = true; - omap_digest = object.omap_digest; - } - if (object.digest_present) { - data_digest_present = true; - data_digest = object.digest; - } -} - -void shard_info_wrapper::encode(bufferlist& bl) const -{ - ENCODE_START(3, 3, bl); - ::encode(errors, bl); - ::encode(primary, bl); - if (has_shard_missing()) { - return; - } - ::encode(attrs, bl); - ::encode(size, bl); - ::encode(omap_digest_present, bl); - ::encode(omap_digest, bl); - ::encode(data_digest_present, bl); - ::encode(data_digest, bl); - ::encode(selected_oi, bl); - ENCODE_FINISH(bl); -} - -void shard_info_wrapper::decode(bufferlist::iterator& bp) -{ - DECODE_START(3, bp); - ::decode(errors, bp); - ::decode(primary, bp); - if (has_shard_missing()) { - return; - } - ::decode(attrs, bp); - ::decode(size, bp); - ::decode(omap_digest_present, bp); - ::decode(omap_digest, bp); - ::decode(data_digest_present, bp); - ::decode(data_digest, bp); - ::decode(selected_oi, bp); - DECODE_FINISH(bp); -} - -inconsistent_obj_wrapper::inconsistent_obj_wrapper(const hobject_t& hoid) - : inconsistent_obj_t{librados::object_id_t{hoid.oid.name, - hoid.nspace, - hoid.get_key(), hoid.snap}} -{} - -void inconsistent_obj_wrapper::add_shard(const pg_shard_t& pgs, - const shard_info_wrapper& shard) -{ - union_shards.errors |= shard.errors; - shards.emplace(osd_shard_t{pgs.osd, int8_t(pgs.shard)}, shard); -} - -void -inconsistent_obj_wrapper::set_auth_missing(const hobject_t& hoid, - const map& maps, - map &shard_map, - int &shallow_errors, int &deep_errors, - const pg_shard_t &primary) -{ - for (auto pg_map : maps) { - auto oid_object = pg_map.second->objects.find(hoid); - shard_map[pg_map.first].primary = (pg_map.first == primary); - if (oid_object == pg_map.second->objects.end()) - shard_map[pg_map.first].set_missing(); - else - shard_map[pg_map.first].set_object(oid_object->second); - if (shard_map[pg_map.first].has_deep_errors()) - ++deep_errors; - else if (shard_map[pg_map.first].has_shallow_errors()) - ++shallow_errors; - union_shards.errors |= shard_map[pg_map.first].errors; - shards.emplace(osd_shard_t{pg_map.first.osd, pg_map.first.shard}, shard_map[pg_map.first]); - } -} - -namespace librados { - static void encode(const shard_info_t& shard, bufferlist& bl) - { - reinterpret_cast(shard).encode(bl); - } -} - -void inconsistent_obj_wrapper::encode(bufferlist& bl) const -{ - ENCODE_START(2, 2, bl); - ::encode(errors, bl); - ::encode(object, bl); - ::encode(version, bl); - ::encode(shards, bl); - ::encode(union_shards.errors, bl); - ENCODE_FINISH(bl); -} - -void inconsistent_obj_wrapper::decode(bufferlist::iterator& bp) -{ - DECODE_START(2, bp); - DECODE_OLDEST(2); - ::decode(errors, bp); - ::decode(object, bp); - ::decode(version, bp); - ::decode(shards, bp); - ::decode(union_shards.errors, bp); - DECODE_FINISH(bp); -} - -inconsistent_snapset_wrapper::inconsistent_snapset_wrapper(const hobject_t& hoid) - : inconsistent_snapset_t{object_id_t{hoid.oid.name, - hoid.nspace, - hoid.get_key(), - hoid.snap}} -{} - -using inc_snapset_t = inconsistent_snapset_t; - -void inconsistent_snapset_wrapper::set_headless() -{ - errors |= inc_snapset_t::HEADLESS_CLONE; -} - -void inconsistent_snapset_wrapper::set_ss_attr_missing() -{ - errors |= inc_snapset_t::SNAPSET_MISSING; -} - -void inconsistent_snapset_wrapper::set_oi_attr_missing() -{ - errors |= inc_snapset_t::OI_MISSING; -} - -void inconsistent_snapset_wrapper::set_ss_attr_corrupted() -{ - errors |= inc_snapset_t::SNAPSET_CORRUPTED; -} - -void inconsistent_snapset_wrapper::set_oi_attr_corrupted() -{ - errors |= inc_snapset_t::OI_CORRUPTED; -} - -void inconsistent_snapset_wrapper::set_clone_missing(snapid_t snap) -{ - errors |= inc_snapset_t::CLONE_MISSING; - missing.push_back(snap); -} - -void inconsistent_snapset_wrapper::set_clone(snapid_t snap) -{ - errors |= inc_snapset_t::EXTRA_CLONES; - clones.push_back(snap); -} - -void inconsistent_snapset_wrapper::set_snapset_mismatch() -{ - errors |= inc_snapset_t::SNAP_MISMATCH; -} - -void inconsistent_snapset_wrapper::set_head_mismatch() -{ - errors |= inc_snapset_t::HEAD_MISMATCH; -} - -void inconsistent_snapset_wrapper::set_size_mismatch() -{ - errors |= inc_snapset_t::SIZE_MISMATCH; -} - -void inconsistent_snapset_wrapper::encode(bufferlist& bl) const -{ - ENCODE_START(1, 1, bl); - ::encode(errors, bl); - ::encode(object, bl); - ::encode(clones, bl); - ::encode(missing, bl); - ENCODE_FINISH(bl); -} - -void inconsistent_snapset_wrapper::decode(bufferlist::iterator& bp) -{ - DECODE_START(1, bp); - ::decode(errors, bp); - ::decode(object, bp); - ::decode(clones, bp); - ::decode(missing, bp); - DECODE_FINISH(bp); -} - -void scrub_ls_arg_t::encode(bufferlist& bl) const -{ - ENCODE_START(1, 1, bl); - ::encode(interval, bl); - ::encode(get_snapsets, bl); - ::encode(start_after.name, bl); - ::encode(start_after.nspace, bl); - ::encode(start_after.snap, bl); - ::encode(max_return, bl); - ENCODE_FINISH(bl); -} - -void scrub_ls_arg_t::decode(bufferlist::iterator& bp) -{ - DECODE_START(1, bp); - ::decode(interval, bp); - ::decode(get_snapsets, bp); - ::decode(start_after.name, bp); - ::decode(start_after.nspace, bp); - ::decode(start_after.snap, bp); - ::decode(max_return, bp); - DECODE_FINISH(bp); -} - -void scrub_ls_result_t::encode(bufferlist& bl) const -{ - ENCODE_START(1, 1, bl); - ::encode(interval, bl); - ::encode(vals, bl); - ENCODE_FINISH(bl); -} - -void scrub_ls_result_t::decode(bufferlist::iterator& bp) -{ - DECODE_START(1, bp); - ::decode(interval, bp); - ::decode(vals, bp); - DECODE_FINISH(bp); -}