diff options
-rw-r--r-- | drivers/lightnvm/pblk-read.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/lightnvm/pblk-read.c b/drivers/lightnvm/pblk-read.c index b8eb6bdb983b..7b7a04a80d67 100644 --- a/drivers/lightnvm/pblk-read.c +++ b/drivers/lightnvm/pblk-read.c | |||
@@ -175,11 +175,10 @@ static void pblk_read_check_rand(struct pblk *pblk, struct nvm_rq *rqd, | |||
175 | WARN_ONCE(j != rqd->nr_ppas, "pblk: corrupted random request\n"); | 175 | WARN_ONCE(j != rqd->nr_ppas, "pblk: corrupted random request\n"); |
176 | } | 176 | } |
177 | 177 | ||
178 | static void pblk_end_user_read(struct bio *bio) | 178 | static void pblk_end_user_read(struct bio *bio, int error) |
179 | { | 179 | { |
180 | #ifdef CONFIG_NVM_PBLK_DEBUG | 180 | if (error && error != NVM_RSP_WARN_HIGHECC) |
181 | WARN_ONCE(bio->bi_status, "pblk: corrupted read bio\n"); | 181 | bio_io_error(bio); |
182 | #endif | ||
183 | bio_endio(bio); | 182 | bio_endio(bio); |
184 | } | 183 | } |
185 | 184 | ||
@@ -219,7 +218,7 @@ static void pblk_end_io_read(struct nvm_rq *rqd) | |||
219 | struct pblk_g_ctx *r_ctx = nvm_rq_to_pdu(rqd); | 218 | struct pblk_g_ctx *r_ctx = nvm_rq_to_pdu(rqd); |
220 | struct bio *bio = (struct bio *)r_ctx->private; | 219 | struct bio *bio = (struct bio *)r_ctx->private; |
221 | 220 | ||
222 | pblk_end_user_read(bio); | 221 | pblk_end_user_read(bio, rqd->error); |
223 | __pblk_end_io_read(pblk, rqd, true); | 222 | __pblk_end_io_read(pblk, rqd, true); |
224 | } | 223 | } |
225 | 224 | ||
@@ -298,7 +297,7 @@ static void pblk_end_partial_read(struct nvm_rq *rqd) | |||
298 | rqd->bio = NULL; | 297 | rqd->bio = NULL; |
299 | rqd->nr_ppas = nr_secs; | 298 | rqd->nr_ppas = nr_secs; |
300 | 299 | ||
301 | bio_endio(bio); | 300 | pblk_end_user_read(bio, rqd->error); |
302 | __pblk_end_io_read(pblk, rqd, false); | 301 | __pblk_end_io_read(pblk, rqd, false); |
303 | } | 302 | } |
304 | 303 | ||