/* Complete the clone and the original request with the error status through softirq context.  */
static void dm_complete_request(struct request *clone, int error)
/* Complete the clone and the original request with the error status through softirq context.  */
static void dm_complete_request(struct request *clone, int error)
{
	struct dm_rq_target_io *tio = clone->end_io_data;
	struct request *rq = tio->orig;
	if (unlikely(blk_barrier_rq(clone))) {
		dm_done(clone, error, true);
		return;
	}
	tio->error = error;
	rq->completion_data = clone;
	blk_complete_request(rq);
}