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

Commit 975e2eb5 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Revert "block: do not requeue completed request""

parents e175a9e6 eb265e4a
Loading
Loading
Loading
Loading
+1 −14
Original line number Diff line number Diff line
@@ -1214,21 +1214,9 @@ EXPORT_SYMBOL(blk_make_request);
 *    Drivers often keep queueing requests until the hardware cannot accept
 *    more, when that condition happens we need to put the request back
 *    on the queue. Must be called with queue lock held.
 *
 * Return: true is request was requeued, false otherwise
 */
bool blk_requeue_request(struct request_queue *q, struct request *rq)
void blk_requeue_request(struct request_queue *q, struct request *rq)
{
	/*
	 * Request could have timed out at this point and error handling is
	 * now in progress so it is marked as completed. Do not allow to
	 * requeue a completed request as this will cause the tag to end and
	 * become -1. However, the request is still active and being used so tag
	 * being -1 is not valid.
	 */
	if (blk_is_req_complete(rq))
		return false;

	blk_delete_timer(rq);
	blk_clear_rq_complete(rq);
	trace_block_rq_requeue(q, rq);
@@ -1249,7 +1237,6 @@ bool blk_requeue_request(struct request_queue *q, struct request *rq)
		q->dispatched_urgent = false;
	}
	elv_requeue_request(q, rq);
	return true;
}
EXPORT_SYMBOL(blk_requeue_request);

+0 −5
Original line number Diff line number Diff line
@@ -58,11 +58,6 @@ static inline void blk_clear_rq_complete(struct request *rq)
	clear_bit(REQ_ATOM_COMPLETE, &rq->atomic_flags);
}

static inline bool blk_is_req_complete(struct request *rq)
{
	return test_bit(REQ_ATOM_COMPLETE, &rq->atomic_flags);
}

/*
 * Internal elevator interface
 */
+1 −1
Original line number Diff line number Diff line
@@ -740,7 +740,7 @@ extern void __blk_put_request(struct request_queue *, struct request *);
extern struct request *blk_get_request(struct request_queue *, int, gfp_t);
extern struct request *blk_make_request(struct request_queue *, struct bio *,
					gfp_t);
extern bool blk_requeue_request(struct request_queue *, struct request *);
extern void blk_requeue_request(struct request_queue *, struct request *);
extern int blk_reinsert_request(struct request_queue *q, struct request *rq);
extern bool blk_reinsert_req_sup(struct request_queue *q);
extern void blk_add_request_payload(struct request *rq, struct page *page,