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
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.