inconsistent_obj_wrapper decode_wrapper(
- hobject_t obj,
ceph::buffer::list::const_iterator bp)
{
- inconsistent_obj_wrapper iow{obj};
+ inconsistent_obj_wrapper iow;
iow.decode(bp);
return iow;
}
* structure.
*/
bufferlist Store::merge_encoded_error_wrappers(
- hobject_t obj,
ExpCacherPosData& latest_sh,
ExpCacherPosData& latest_dp) const
{
// decode both error wrappers
- auto sh_wrap = decode_wrapper(obj, latest_sh->data.cbegin());
- auto dp_wrap = decode_wrapper(obj, latest_dp->data.cbegin());
+ auto sh_wrap = decode_wrapper(latest_sh->data.cbegin());
+ auto dp_wrap = decode_wrapper(latest_dp->data.cbegin());
// note: the '20' level is just until we're sure the merging works as
// expected
}
}
} else if (sh_wrap.version > dp_wrap.version) {
+ // RRR decide on the policy here.
if (false && dp_wrap.version == 0) {
// there was a read error in the deep scrub. The deep version
// shows as '0'. That's severe enough for us to ignore the shallow.
// we have results from both stores. Select the one with a lower key.
// If the keys are equal, combine the errors.
if (latest_sh->last_key == latest_dp->last_key) {
- auto bl = merge_encoded_error_wrappers(
- shallow_db->errors_hoid.hobj, latest_sh, latest_dp);
+ auto bl = merge_encoded_error_wrappers(latest_sh, latest_dp);
errors.push_back(bl);
latest_sh = shallow_db->backend.get_1st_after_key(latest_sh->last_key);
latest_dp = deep_db->backend.get_1st_after_key(latest_dp->last_key);