Skip to content

Commit

Permalink
lightnvm: pblk: fix smeta write error path
Browse files Browse the repository at this point in the history
Smeta write errors were previously ignored. Skip these
lines instead and throw them back on the free
list, so the chunks will go through a reset cycle
before we attempt to use the line again.

Signed-off-by: Hans Holmberg <hans.holmberg@cnexlabs.com>
Reviewed-by: Javier González <javier@cnexlabs.com>
Signed-off-by: Matias Bjørling <mb@lightnvm.io>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
  • Loading branch information
Hans Holmberg authored and Jens Axboe committed Jun 1, 2018
1 parent 48b8d20 commit 6cf17a2
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions drivers/lightnvm/pblk-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -849,9 +849,10 @@ static int pblk_line_submit_smeta_io(struct pblk *pblk, struct pblk_line *line,
atomic_dec(&pblk->inflight_io);

if (rqd.error) {
if (dir == PBLK_WRITE)
if (dir == PBLK_WRITE) {
pblk_log_write_err(pblk, &rqd);
else if (dir == PBLK_READ)
ret = 1;
} else if (dir == PBLK_READ)
pblk_log_read_err(pblk, &rqd);
}

Expand Down Expand Up @@ -1101,7 +1102,7 @@ static int pblk_line_init_bb(struct pblk *pblk, struct pblk_line *line,

if (init && pblk_line_submit_smeta_io(pblk, line, off, PBLK_WRITE)) {
pr_debug("pblk: line smeta I/O failed. Retry\n");
return 1;
return 0;
}

bitmap_copy(line->invalid_bitmap, line->map_bitmap, lm->sec_per_line);
Expand Down

0 comments on commit 6cf17a2

Please sign in to comment.