2009-06-09 01:59:00

by FUJITA Tomonori

[permalink] [raw]
Subject: [PATCH] block: needs to set the residual length of a bidi request.

This is against for-2.6.31.

This should fix the following problem:

http://marc.info/?l=linux-scsi&m=124449210813269&w=2

=
From: FUJITA Tomonori <[email protected]>
Subject: [PATCH] block: needs to set the residual length of a bidi request

Tejun's "block: set rq->resid_len to blk_rq_bytes() on issue" patch
seems to be incomplete; It doesn't set rq->resid_len to blk_rq_bytes()
for a bidi request (req->next_rq). As a result, all bidi users are
broken.

Signed-off-by: FUJITA Tomonori <[email protected]>
---
block/blk-core.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/block/blk-core.c b/block/blk-core.c
index 7ae83a1..03c5a64 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -1846,6 +1846,9 @@ void blk_start_request(struct request *req)
* resid_len to full count and add the timeout handler.
*/
req->resid_len = blk_rq_bytes(req);
+ if (unlikely(blk_bidi_rq(req)))
+ req->next_rq->resid_len = blk_rq_bytes(req->next_rq);
+
blk_add_timer(req);
}
EXPORT_SYMBOL(blk_start_request);
--
1.6.0.6


2009-06-09 02:59:54

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH] block: needs to set the residual length of a bidi request.

FUJITA Tomonori wrote:
> This is against for-2.6.31.
>
> This should fix the following problem:
>
> http://marc.info/?l=linux-scsi&m=124449210813269&w=2
>
> =
> From: FUJITA Tomonori <[email protected]>
> Subject: [PATCH] block: needs to set the residual length of a bidi request
>
> Tejun's "block: set rq->resid_len to blk_rq_bytes() on issue" patch
> seems to be incomplete; It doesn't set rq->resid_len to blk_rq_bytes()
> for a bidi request (req->next_rq). As a result, all bidi users are
> broken.
>
> Signed-off-by: FUJITA Tomonori <[email protected]>

Acked-by: Tejun Heo <[email protected]>

Thanks.

--
tejun

2009-06-09 03:45:47

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH] block: needs to set the residual length of a bidi request.

On Tue, Jun 09 2009, FUJITA Tomonori wrote:
> This is against for-2.6.31.
>
> This should fix the following problem:
>
> http://marc.info/?l=linux-scsi&m=124449210813269&w=2

Thanks, applied

--
Jens Axboe