}
bool PrimaryLogPG::inc_refcount_by_set(OpContext* ctx, object_manifest_t& set_chunk,
- RefCountCallback* fin)
+ OSDOp& osd_op)
{
object_ref_delta_t refs;
ObjectContextRef obc_l, obc_g;
* the reference the targe object has prior to update object_manifest in object_info_t.
* So, call directly refcount_manifest.
*/
+ RefCountCallback *fin = new RefCountCallback(ctx, osd_op);
refcount_manifest(ctx->obs->oi.soid, p->first,
refcount_t::INCREMENT_REF, fin);
return true;
hobject_t tgt = p->first;
ctx->register_on_commit(
[src, tgt, this](){
- refcount_manifest(src, tgt, refcount_t::DECREMENT_REF, NULL);
+ refcount_manifest(src, tgt, refcount_t::DECREMENT_REF, NULL);
});
return false;
}
// start
ctx->op_finishers[ctx->current_osd_subop_num].reset(
new SetManifestFinisher(osd_op));
- RefCountCallback *fin = new RefCountCallback(ctx, osd_op);
object_manifest_t set_chunk;
bool need_inc_ref = false;
set_chunk.chunk_map[src_offset] = chunk_info;
- need_inc_ref = inc_refcount_by_set(ctx, set_chunk, fin);
+ need_inc_ref = inc_refcount_by_set(ctx, set_chunk, osd_op);
if (need_inc_ref) {
result = -EINPROGRESS;
break;
void get_adjacent_clones(const object_info_t& oi, OpContext* ctx,
ObjectContextRef& _l, ObjectContextRef& _g);
bool inc_refcount_by_set(OpContext* ctx, object_manifest_t& tgt,
- RefCountCallback* fin = NULL);
+ OSDOp& osd_op);
friend struct C_ProxyChunkRead;
friend class PromoteManifestCallback;