2007-09-11 19:09:48

by Kiyoshi Ueda

[permalink] [raw]
Subject: [PATCH 22/27] blk_end_request: changing xsysace (take 2)

This patch converts xsysace to use blk_end_request().

xsysace is a little bit different from "normal" drivers.
xsysace driver has a state machine in it.
It calls end_that_request_first() and end_that_request_last()
from different states. (ACE_FSM_STATE_REQ_TRANSFER and
ACE_FSM_STATE_REQ_COMPLETE, respectively.)

However, those states are consecutive and without any interruption
inbetween.
So we can just follow the standard conversion rule (b) mentioned in
the patch subject "[PATCH 01/27] blk_end_request: add new request
completion interface".

Signed-off-by: Kiyoshi Ueda <[email protected]>
Signed-off-by: Jun'ichi Nomura <[email protected]>
---
drivers/block/xsysace.c | 5 +----
1 files changed, 1 insertion(+), 4 deletions(-)

diff -rupN 21-ide-scsi-caller-change/drivers/block/xsysace.c 22-xsysace-caller-change/drivers/block/xsysace.c
--- 21-ide-scsi-caller-change/drivers/block/xsysace.c 2007-09-10 17:32:11.000000000 -0400
+++ 22-xsysace-caller-change/drivers/block/xsysace.c 2007-09-10 18:14:20.000000000 -0400
@@ -696,7 +696,7 @@ static void ace_fsm_dostate(struct ace_d

/* bio finished; is there another one? */
i = ace->req->current_nr_sectors;
- if (end_that_request_first(ace->req, 1, i)) {
+ if (__blk_end_request(ace->req, 1, i)) {
/* dev_dbg(ace->dev, "next block; h=%li c=%i\n",
* ace->req->hard_nr_sectors,
* ace->req->current_nr_sectors);
@@ -711,9 +711,6 @@ static void ace_fsm_dostate(struct ace_d
break;

case ACE_FSM_STATE_REQ_COMPLETE:
- /* Complete the block request */
- blkdev_dequeue_request(ace->req);
- end_that_request_last(ace->req, 1);
ace->req = NULL;

/* Finished request; go to idle state */


2007-09-11 19:15:36

by Grant Likely

[permalink] [raw]
Subject: Re: [PATCH 22/27] blk_end_request: changing xsysace (take 2)

On 9/11/07, Kiyoshi Ueda <[email protected]> wrote:
> This patch converts xsysace to use blk_end_request().
>
> xsysace is a little bit different from "normal" drivers.
> xsysace driver has a state machine in it.
> It calls end_that_request_first() and end_that_request_last()
> from different states. (ACE_FSM_STATE_REQ_TRANSFER and
> ACE_FSM_STATE_REQ_COMPLETE, respectively.)
>
> However, those states are consecutive and without any interruption
> inbetween.
> So we can just follow the standard conversion rule (b) mentioned in
> the patch subject "[PATCH 01/27] blk_end_request: add new request
> completion interface".
>
> Signed-off-by: Kiyoshi Ueda <[email protected]>
> Signed-off-by: Jun'ichi Nomura <[email protected]>
Acked-by: Grant Likely <[email protected]>

> ---
> drivers/block/xsysace.c | 5 +----
> 1 files changed, 1 insertion(+), 4 deletions(-)
>
> diff -rupN 21-ide-scsi-caller-change/drivers/block/xsysace.c 22-xsysace-caller-change/drivers/block/xsysace.c
> --- 21-ide-scsi-caller-change/drivers/block/xsysace.c 2007-09-10 17:32:11.000000000 -0400
> +++ 22-xsysace-caller-change/drivers/block/xsysace.c 2007-09-10 18:14:20.000000000 -0400
> @@ -696,7 +696,7 @@ static void ace_fsm_dostate(struct ace_d
>
> /* bio finished; is there another one? */
> i = ace->req->current_nr_sectors;
> - if (end_that_request_first(ace->req, 1, i)) {
> + if (__blk_end_request(ace->req, 1, i)) {
> /* dev_dbg(ace->dev, "next block; h=%li c=%i\n",
> * ace->req->hard_nr_sectors,
> * ace->req->current_nr_sectors);
> @@ -711,9 +711,6 @@ static void ace_fsm_dostate(struct ace_d
> break;
>
> case ACE_FSM_STATE_REQ_COMPLETE:
> - /* Complete the block request */
> - blkdev_dequeue_request(ace->req);
> - end_that_request_last(ace->req, 1);
> ace->req = NULL;
>
> /* Finished request; go to idle state */
>


--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
[email protected]
(403) 399-0195