static void dm_requeue_original_request(struct mapped_device *md, struct request *rq) { int rw = rq_data_dir(rq); rq_end_stats(md, rq); dm_unprep_request(rq); if (!rq->q->mq_ops) dm_old_requeue_request(rq); else dm_mq_requeue_request(rq); rq_completed(md, rw, false); }
static void dm_requeue_original_request(struct dm_rq_target_io *tio, bool delay_requeue) { struct mapped_device *md = tio->md; struct request *rq = tio->orig; int rw = rq_data_dir(rq); rq_end_stats(md, rq); if (tio->clone) { blk_rq_unprep_clone(tio->clone); tio->ti->type->release_clone_rq(tio->clone); } if (!rq->q->mq_ops) dm_old_requeue_request(rq); else dm_mq_delay_requeue_request(rq, delay_requeue ? 100/*ms*/ : 0); rq_completed(md, rw, false); }