diff mbox

lightnvm: check bi_error in gc

Message ID 1451368212-20076-1-git-send-email-ww.tao0320@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Wenwei Tao Dec. 29, 2015, 5:50 a.m. UTC
We should check last io compeltion status before
start another one.

Signed-off-by: Wenwei Tao <ww.tao0320@gmail.com>
---
 drivers/lightnvm/rrpc.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Matias Bjorling Dec. 29, 2015, 9:37 a.m. UTC | #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 <ww.tao0320@gmail.com>
> ---
>   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.
--
To unsubscribe from this list: send the line "unsubscribe linux-block" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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);
 	}