promote_object(obc, missing_oid, oloc, op);
return true;
}
+
+ // Always proxy
+ do_proxy_read(op);
+
+ // Promote too?
switch (pool.info.min_read_recency_for_promote) {
case 0:
- promote_object(obc, missing_oid, oloc, op);
+ promote_object(obc, missing_oid, oloc, OpRequestRef());
break;
case 1:
// Check if in the current hit set
if (in_hit_set) {
- promote_object(obc, missing_oid, oloc, op);
- } else {
- do_cache_redirect(op, obc);
+ promote_object(obc, missing_oid, oloc, OpRequestRef());
}
break;
default:
if (in_hit_set) {
- promote_object(obc, missing_oid, oloc, op);
+ promote_object(obc, missing_oid, oloc, OpRequestRef());
} else {
// Check if in other hit sets
map<time_t,HitSetRef>::iterator itor;
}
}
if (in_other_hit_sets) {
- promote_object(obc, missing_oid, oloc, op);
- } else {
- do_cache_redirect(op, obc);
+ promote_object(obc, missing_oid, oloc, OpRequestRef());
}
}
break;