aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/lightnvm/pblk-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/lightnvm/pblk-core.c')
-rw-r--r--drivers/lightnvm/pblk-core.c7
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
1470void pblk_line_close_meta(struct pblk *pblk, struct pblk_line *line) 1473void pblk_line_close_meta(struct pblk *pblk, struct pblk_line *line)