Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 980691e5 authored by Kiyoshi Ueda's avatar Kiyoshi Ueda Committed by Alasdair G Kergon
Browse files

dm: move dm_end_request



This patch moves dm_end_request() to make the next patch more readable.
No functional change.

Signed-off-by: default avatarKiyoshi Ueda <k-ueda@ct.jp.nec.com>
Signed-off-by: default avatarJun'ichi Nomura <j-nomura@ce.jp.nec.com>
Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
parent 11a68244
Loading
Loading
Loading
Loading
+31 −31
Original line number Diff line number Diff line
@@ -752,6 +752,37 @@ static void free_rq_clone(struct request *clone)
	free_rq_tio(tio);
}

/*
 * Complete the clone and the original request.
 * Must be called without queue lock.
 */
static void dm_end_request(struct request *clone, int error)
{
	int rw = rq_data_dir(clone);
	struct dm_rq_target_io *tio = clone->end_io_data;
	struct mapped_device *md = tio->md;
	struct request *rq = tio->orig;

	if (blk_pc_request(rq)) {
		rq->errors = clone->errors;
		rq->resid_len = clone->resid_len;

		if (rq->sense)
			/*
			 * We are using the sense buffer of the original
			 * request.
			 * So setting the length of the sense data is enough.
			 */
			rq->sense_len = clone->sense_len;
	}

	free_rq_clone(clone);

	blk_end_request_all(rq, error);

	rq_completed(md, rw, 1);
}

static void dm_unprep_request(struct request *rq)
{
	struct request *clone = rq->special;
@@ -815,37 +846,6 @@ static void start_queue(struct request_queue *q)
	spin_unlock_irqrestore(q->queue_lock, flags);
}

/*
 * Complete the clone and the original request.
 * Must be called without queue lock.
 */
static void dm_end_request(struct request *clone, int error)
{
	int rw = rq_data_dir(clone);
	struct dm_rq_target_io *tio = clone->end_io_data;
	struct mapped_device *md = tio->md;
	struct request *rq = tio->orig;

	if (blk_pc_request(rq)) {
		rq->errors = clone->errors;
		rq->resid_len = clone->resid_len;

		if (rq->sense)
			/*
			 * We are using the sense buffer of the original
			 * request.
			 * So setting the length of the sense data is enough.
			 */
			rq->sense_len = clone->sense_len;
	}

	free_rq_clone(clone);

	blk_end_request_all(rq, error);

	rq_completed(md, rw, 1);
}

static void dm_done(struct request *clone, int error, bool mapped)
{
	int r = error;