struct dm_rq_target_io *tio = clone->end_io_data;
        struct mapped_device *md = tio->md;
  
-       blk_rq_unprep_clone(clone);
 -      WARN_ON_ONCE(must_be_mapped && !clone->q);
--
        if (md->type == DM_TYPE_MQ_REQUEST_BASED)
                /* stacked on blk-mq queue(s) */
                tio->ti->type->release_clone_rq(clone);
                        dm_kill_unmapped_request(rq, r);
                        return r;
                }
 -              if (IS_ERR(clone))
 -                      return DM_MAPIO_REQUEUE;
 +              if (r != DM_MAPIO_REMAPPED)
 +                      return r;
-               if (setup_clone(clone, rq, tio, GFP_ATOMIC)) {
-                       /* -ENOMEM */
-                       ti->type->release_clone_rq(clone);
-                       return DM_MAPIO_REQUEUE;
-               }
+               setup_clone(clone, rq, tio);
        }
  
        switch (r) {