string oid = image_ctx.get_object_name(m_object_no);
ldout(image_ctx.cct, 10) << "removing (with copyup) " << oid << dendl;
- auto req = io::ObjectRequest<I>::create_trim(&image_ctx, oid, m_object_no,
- m_snapc, false, this);
+ auto req = io::ObjectRequest<I>::create_discard(
+ &image_ctx, oid, m_object_no, 0, image_ctx.layout.object_size, m_snapc,
+ false, false, {}, this);
req->send();
return 0;
}
ldout(cct, 20) << " ex " << *p << dendl;
Context *req_comp = new C_ContextCompletion(*completion);
- io::ObjectRequest<I> *req;
if (p->offset == 0) {
- req = io::ObjectRequest<I>::create_trim(&image_ctx, p->oid.name,
- p->objectno, snapc, true,
- req_comp);
- } else {
- req = io::ObjectRequest<I>::create_truncate(&image_ctx, p->oid.name,
- p->objectno, p->offset, snapc,
- {}, req_comp);
+ // treat as a full object delete on the boundary
+ p->length = image_ctx.layout.object_size;
}
+ auto req = io::ObjectRequest<I>::create_discard(&image_ctx, p->oid.name,
+ p->objectno, p->offset,
+ p->length, snapc, false,
+ true, {}, req_comp);
req->send();
}
completion->finish_adding_requests();