/* Return: false - we are done with this request true - still buffers pending for this request  */
static bool blk_end_bidi_request(struct request *rq, int error, unsigned int nr_bytes, unsigned int bidi_bytes)
/* Return: false - we are done with this request true - still buffers pending for this request  */
static bool blk_end_bidi_request(struct request *rq, int error, unsigned int nr_bytes, unsigned int bidi_bytes)
{
	struct request_queue *q = rq->q;
	unsigned long flags;
	if (blk_update_bidi_request(rq, error, nr_bytes, bidi_bytes))
		return true;
	spin_lock_irqsave(q->queue_lock, flags);
	blk_finish_request(rq, error);
	spin_unlock_irqrestore(q->queue_lock, flags);
	return false;
}