return;
}
- if (obc.get() && obc->obs.exists && obc->obs.oi.has_manifest()) {
+ if (obc.get() && obc->obs.exists) {
if (recover_adjacent_clones(obc, op)) {
return;
}
ObjectContextRef obc)
{
ceph_assert(obc);
+ if (!obc->obs.oi.has_manifest()) {
+ dout(20) << __func__ << ": " << obc->obs.oi.soid
+ << " is not manifest object " << dendl;
+ return cache_result_t::NOOP;
+ }
if (op->get_req<MOSDOp>()->get_flags() & CEPH_OSD_FLAG_IGNORE_REDIRECT) {
dout(20) << __func__ << ": ignoring redirect due to flag" << dendl;
return cache_result_t::NOOP;
ObjectContextRef promote_obc;
cache_result_t tier_mode_result;
if (obs.exists && obs.oi.has_manifest()) {
- if (!rollback_to->obs.oi.has_manifest()) {
- // rollback_to is not manifest object
- tier_mode_result = cache_result_t::NOOP;
- } else {
- tier_mode_result =
- maybe_handle_manifest_detail(
- ctx->op,
- true,
- rollback_to);
- }
+ tier_mode_result =
+ maybe_handle_manifest_detail(
+ ctx->op,
+ true,
+ rollback_to);
} else {
tier_mode_result =
maybe_handle_cache_detail(