2015-12-29 05:50:46

by Wenwei Tao

[permalink] [raw]
Subject: [PATCH] lightnvm: check bi_error in gc

We should check last io compeltion status before
start another one.

Signed-off-by: Wenwei Tao <[email protected]>
---
drivers/lightnvm/rrpc.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c
index c0886a8..d40c140 100644
--- a/drivers/lightnvm/rrpc.c
+++ b/drivers/lightnvm/rrpc.c
@@ -328,6 +328,10 @@ try:
goto finished;
}
wait_for_completion_io(&wait);
+ if (bio->bi_error) {
+ rrpc_inflight_laddr_release(rrpc, rqd);
+ goto finished;
+ }

bio_reset(bio);
reinit_completion(&wait);
@@ -350,6 +354,8 @@ try:
wait_for_completion_io(&wait);

rrpc_inflight_laddr_release(rrpc, rqd);
+ if (bio->bi_error)
+ goto finished;

bio_reset(bio);
}
--
1.8.3.1


2015-12-29 09:37:17

by Matias Bjørling

[permalink] [raw]
Subject: Re: [PATCH] lightnvm: check bi_error in gc

On 12/29/2015 06:50 AM, Wenwei Tao wrote:
> We should check last io compeltion status before
> start another one.
>
> Signed-off-by: Wenwei Tao <[email protected]>
> ---
> drivers/lightnvm/rrpc.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c
> index c0886a8..d40c140 100644
> --- a/drivers/lightnvm/rrpc.c
> +++ b/drivers/lightnvm/rrpc.c
> @@ -328,6 +328,10 @@ try:
> goto finished;
> }
> wait_for_completion_io(&wait);
> + if (bio->bi_error) {
> + rrpc_inflight_laddr_release(rrpc, rqd);
> + goto finished;
> + }
>
> bio_reset(bio);
> reinit_completion(&wait);
> @@ -350,6 +354,8 @@ try:
> wait_for_completion_io(&wait);
>
> rrpc_inflight_laddr_release(rrpc, rqd);
> + if (bio->bi_error)
> + goto finished;
>
> bio_reset(bio);
> }
>
Thanks Tao. I've applied it for 4.5.