X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Flibrbd%2Foperation%2FTrimRequest.cc;h=4ae63260334f6b56d132dee6ea7d0675081a26a0;hb=b32b81446b3b05102be0267e79203f59329c1d97;hp=28f2deb1af84f9d9f1137fe6faddf3348089f862;hpb=215dd7151453fae88e6f968c975b6ce309d42dcf;p=ceph.git diff --git a/ceph/src/librbd/operation/TrimRequest.cc b/ceph/src/librbd/operation/TrimRequest.cc index 28f2deb1a..4ae632603 100644 --- a/ceph/src/librbd/operation/TrimRequest.cc +++ b/ceph/src/librbd/operation/TrimRequest.cc @@ -45,8 +45,9 @@ public: string oid = image_ctx.get_object_name(m_object_no); ldout(image_ctx.cct, 10) << "removing (with copyup) " << oid << dendl; - auto req = io::ObjectRequest::create_trim(&image_ctx, oid, m_object_no, - m_snapc, false, this); + auto req = io::ObjectRequest::create_discard( + &image_ctx, oid, m_object_no, 0, image_ctx.layout.object_size, m_snapc, + false, false, {}, this); req->send(); return 0; } @@ -338,16 +339,14 @@ void TrimRequest::send_clean_boundary() { ldout(cct, 20) << " ex " << *p << dendl; Context *req_comp = new C_ContextCompletion(*completion); - io::ObjectRequest *req; if (p->offset == 0) { - req = io::ObjectRequest::create_trim(&image_ctx, p->oid.name, - p->objectno, snapc, true, - req_comp); - } else { - req = io::ObjectRequest::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::create_discard(&image_ctx, p->oid.name, + p->objectno, p->offset, + p->length, snapc, false, + true, {}, req_comp); req->send(); } completion->finish_adding_requests();