diff options
Diffstat (limited to 'drivers/lightnvm/pblk-core.c')
| -rw-r--r-- | drivers/lightnvm/pblk-core.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/lightnvm/pblk-core.c b/drivers/lightnvm/pblk-core.c index ed41cd7700b3..ba3b88f0e1f7 100644 --- a/drivers/lightnvm/pblk-core.c +++ b/drivers/lightnvm/pblk-core.c | |||
| @@ -302,12 +302,12 @@ struct list_head *pblk_line_gc_list(struct pblk *pblk, struct pblk_line *line) | |||
| 302 | line->gc_group = PBLK_LINEGC_FULL; | 302 | line->gc_group = PBLK_LINEGC_FULL; |
| 303 | move_list = &l_mg->gc_full_list; | 303 | move_list = &l_mg->gc_full_list; |
| 304 | } | 304 | } |
| 305 | } else if (vsc < lm->mid_thrs) { | 305 | } else if (vsc < lm->high_thrs) { |
| 306 | if (line->gc_group != PBLK_LINEGC_HIGH) { | 306 | if (line->gc_group != PBLK_LINEGC_HIGH) { |
| 307 | line->gc_group = PBLK_LINEGC_HIGH; | 307 | line->gc_group = PBLK_LINEGC_HIGH; |
| 308 | move_list = &l_mg->gc_high_list; | 308 | move_list = &l_mg->gc_high_list; |
| 309 | } | 309 | } |
| 310 | } else if (vsc < lm->high_thrs) { | 310 | } else if (vsc < lm->mid_thrs) { |
| 311 | if (line->gc_group != PBLK_LINEGC_MID) { | 311 | if (line->gc_group != PBLK_LINEGC_MID) { |
| 312 | line->gc_group = PBLK_LINEGC_MID; | 312 | line->gc_group = PBLK_LINEGC_MID; |
| 313 | move_list = &l_mg->gc_mid_list; | 313 | move_list = &l_mg->gc_mid_list; |
| @@ -1199,6 +1199,7 @@ retry_get: | |||
| 1199 | if (pblk_line_prepare(pblk, line)) { | 1199 | if (pblk_line_prepare(pblk, line)) { |
| 1200 | pr_err("pblk: failed to prepare line %d\n", line->id); | 1200 | pr_err("pblk: failed to prepare line %d\n", line->id); |
| 1201 | list_add(&line->list, &l_mg->free_list); | 1201 | list_add(&line->list, &l_mg->free_list); |
| 1202 | l_mg->nr_free_lines++; | ||
| 1202 | return NULL; | 1203 | return NULL; |
| 1203 | } | 1204 | } |
| 1204 | 1205 | ||
| @@ -1465,6 +1466,8 @@ void pblk_line_close(struct pblk *pblk, struct pblk_line *line) | |||
| 1465 | 1466 | ||
| 1466 | spin_unlock(&line->lock); | 1467 | spin_unlock(&line->lock); |
| 1467 | spin_unlock(&l_mg->gc_lock); | 1468 | spin_unlock(&l_mg->gc_lock); |
| 1469 | |||
| 1470 | pblk_gc_should_kick(pblk); | ||
| 1468 | } | 1471 | } |
| 1469 | 1472 | ||
| 1470 | void pblk_line_close_meta(struct pblk *pblk, struct pblk_line *line) | 1473 | void pblk_line_close_meta(struct pblk *pblk, struct pblk_line *line) |
