]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/librbd/operation/TrimRequest.cc
update sources to v12.2.3
[ceph.git] / ceph / src / librbd / operation / TrimRequest.cc
index 28f2deb1af84f9d9f1137fe6faddf3348089f862..4ae63260334f6b56d132dee6ea7d0675081a26a0 100644 (file)
@@ -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<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;
   }
@@ -338,16 +339,14 @@ void TrimRequest<I>::send_clean_boundary() {
     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();