Lines Matching refs:l_mg
154 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in __pblk_map_invalidate() local
176 spin_lock(&l_mg->gc_lock); in __pblk_map_invalidate()
181 spin_unlock(&l_mg->gc_lock); in __pblk_map_invalidate()
187 spin_unlock(&l_mg->gc_lock); in __pblk_map_invalidate()
373 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_line_gc_list() local
382 move_list = &l_mg->gc_werr_list; in pblk_line_gc_list()
388 move_list = &l_mg->gc_full_list; in pblk_line_gc_list()
393 move_list = &l_mg->gc_high_list; in pblk_line_gc_list()
398 move_list = &l_mg->gc_mid_list; in pblk_line_gc_list()
403 move_list = &l_mg->gc_low_list; in pblk_line_gc_list()
408 move_list = &l_mg->gc_empty_list; in pblk_line_gc_list()
413 move_list = &l_mg->corrupt_list; in pblk_line_gc_list()
633 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_line_submit_emeta_io() local
671 l_mg->emeta_alloc_type, GFP_KERNEL); in pblk_line_submit_emeta_io()
958 struct pblk_line_mgmt *l_mg, in pblk_line_setup_metadata() argument
963 lockdep_assert_held(&l_mg->free_lock); in pblk_line_setup_metadata()
966 meta_line = find_first_zero_bit(&l_mg->meta_bitmap, PBLK_DATA_LINES); in pblk_line_setup_metadata()
968 spin_unlock(&l_mg->free_lock); in pblk_line_setup_metadata()
970 spin_lock(&l_mg->free_lock); in pblk_line_setup_metadata()
974 set_bit(meta_line, &l_mg->meta_bitmap); in pblk_line_setup_metadata()
977 line->smeta = l_mg->sline_meta[meta_line]; in pblk_line_setup_metadata()
978 line->emeta = l_mg->eline_meta[meta_line]; in pblk_line_setup_metadata()
996 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_line_init_metadata() local
1008 spin_lock(&l_mg->free_lock); in pblk_line_init_metadata()
1013 list_add_tail(&line->list, &l_mg->bad_list); in pblk_line_init_metadata()
1014 spin_unlock(&l_mg->free_lock); in pblk_line_init_metadata()
1099 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_line_init_bb() local
1110 bitmap_shift_left(l_mg->bb_aux, l_mg->bb_template, off, in pblk_line_init_bb()
1112 bitmap_or(line->map_bitmap, line->map_bitmap, l_mg->bb_aux, in pblk_line_init_bb()
1157 list_add_tail(&line->list, &l_mg->bad_list); in pblk_line_init_bb()
1238 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_line_recov_alloc() local
1241 spin_lock(&l_mg->free_lock); in pblk_line_recov_alloc()
1242 l_mg->data_line = line; in pblk_line_recov_alloc()
1247 list_add(&line->list, &l_mg->free_list); in pblk_line_recov_alloc()
1248 spin_unlock(&l_mg->free_lock); in pblk_line_recov_alloc()
1251 spin_unlock(&l_mg->free_lock); in pblk_line_recov_alloc()
1258 list_add(&line->list, &l_mg->free_list); in pblk_line_recov_alloc()
1294 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_line_get() local
1299 lockdep_assert_held(&l_mg->free_lock); in pblk_line_get()
1302 if (list_empty(&l_mg->free_list)) { in pblk_line_get()
1307 line = list_first_entry(&l_mg->free_list, struct pblk_line, list); in pblk_line_get()
1309 l_mg->nr_free_lines--; in pblk_line_get()
1317 list_add_tail(&line->list, &l_mg->bad_list); in pblk_line_get()
1327 list_add(&line->list, &l_mg->bad_list); in pblk_line_get()
1330 list_add(&line->list, &l_mg->corrupt_list); in pblk_line_get()
1334 list_add(&line->list, &l_mg->free_list); in pblk_line_get()
1335 l_mg->nr_free_lines++; in pblk_line_get()
1346 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_line_retry() local
1350 spin_lock(&l_mg->free_lock); in pblk_line_retry()
1353 l_mg->data_line = NULL; in pblk_line_retry()
1354 spin_unlock(&l_mg->free_lock); in pblk_line_retry()
1366 l_mg->data_line = retry_line; in pblk_line_retry()
1367 spin_unlock(&l_mg->free_lock); in pblk_line_retry()
1386 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_line_get_first_data() local
1389 spin_lock(&l_mg->free_lock); in pblk_line_get_first_data()
1392 spin_unlock(&l_mg->free_lock); in pblk_line_get_first_data()
1396 line->seq_nr = l_mg->d_seq_nr++; in pblk_line_get_first_data()
1398 l_mg->data_line = line; in pblk_line_get_first_data()
1400 pblk_line_setup_metadata(line, l_mg, &pblk->lm); in pblk_line_get_first_data()
1403 l_mg->data_next = pblk_line_get(pblk); in pblk_line_get_first_data()
1404 if (!l_mg->data_next) { in pblk_line_get_first_data()
1411 l_mg->data_next = NULL; in pblk_line_get_first_data()
1413 l_mg->data_next->seq_nr = l_mg->d_seq_nr++; in pblk_line_get_first_data()
1414 l_mg->data_next->type = PBLK_LINETYPE_DATA; in pblk_line_get_first_data()
1416 spin_unlock(&l_mg->free_lock); in pblk_line_get_first_data()
1451 lockdep_assert_held(&pblk->l_mg.free_lock); in pblk_stop_writes()
1459 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_line_close_meta_sync() local
1464 spin_lock(&l_mg->close_lock); in pblk_line_close_meta_sync()
1465 if (list_empty(&l_mg->emeta_list)) { in pblk_line_close_meta_sync()
1466 spin_unlock(&l_mg->close_lock); in pblk_line_close_meta_sync()
1470 list_cut_position(&list, &l_mg->emeta_list, l_mg->emeta_list.prev); in pblk_line_close_meta_sync()
1471 spin_unlock(&l_mg->close_lock); in pblk_line_close_meta_sync()
1494 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in __pblk_pipeline_flush() local
1497 spin_lock(&l_mg->free_lock); in __pblk_pipeline_flush()
1500 spin_unlock(&l_mg->free_lock); in __pblk_pipeline_flush()
1504 spin_unlock(&l_mg->free_lock); in __pblk_pipeline_flush()
1521 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in __pblk_pipeline_stop() local
1523 spin_lock(&l_mg->free_lock); in __pblk_pipeline_stop()
1525 l_mg->data_line = NULL; in __pblk_pipeline_stop()
1526 l_mg->data_next = NULL; in __pblk_pipeline_stop()
1527 spin_unlock(&l_mg->free_lock); in __pblk_pipeline_stop()
1538 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_line_replace_data() local
1542 cur = l_mg->data_line; in pblk_line_replace_data()
1543 new = l_mg->data_next; in pblk_line_replace_data()
1546 l_mg->data_line = new; in pblk_line_replace_data()
1548 spin_lock(&l_mg->free_lock); in pblk_line_replace_data()
1549 pblk_line_setup_metadata(new, l_mg, &pblk->lm); in pblk_line_replace_data()
1550 spin_unlock(&l_mg->free_lock); in pblk_line_replace_data()
1588 spin_lock(&l_mg->free_lock); in pblk_line_replace_data()
1589 l_mg->data_next = pblk_line_get(pblk); in pblk_line_replace_data()
1590 if (!l_mg->data_next) { in pblk_line_replace_data()
1596 l_mg->data_next = NULL; in pblk_line_replace_data()
1598 l_mg->data_next->seq_nr = l_mg->d_seq_nr++; in pblk_line_replace_data()
1599 l_mg->data_next->type = PBLK_LINETYPE_DATA; in pblk_line_replace_data()
1601 spin_unlock(&l_mg->free_lock); in pblk_line_replace_data()
1609 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in __pblk_line_put() local
1626 spin_lock(&l_mg->free_lock); in __pblk_line_put()
1627 list_add_tail(&line->list, &l_mg->free_list); in __pblk_line_put()
1628 l_mg->nr_free_lines++; in __pblk_line_put()
1629 spin_unlock(&l_mg->free_lock); in __pblk_line_put()
1701 return pblk->l_mg.data_line; in pblk_line_get_data()
1707 return pblk->l_mg.data_next; in pblk_line_get_erase()
1726 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_line_close() local
1735 spin_lock(&l_mg->free_lock); in pblk_line_close()
1736 WARN_ON(!test_and_clear_bit(line->meta_line, &l_mg->meta_bitmap)); in pblk_line_close()
1737 spin_unlock(&l_mg->free_lock); in pblk_line_close()
1739 spin_lock(&l_mg->gc_lock); in pblk_line_close()
1762 spin_unlock(&l_mg->gc_lock); in pblk_line_close()
1767 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_line_close_meta() local
1774 memcpy(emeta_to_vsc(pblk, emeta_buf), l_mg->vsc_list, lm->vsc_list_len); in pblk_line_close_meta()
1784 spin_lock(&l_mg->close_lock); in pblk_line_close_meta()
1793 list_add_tail(&line->list, &l_mg->emeta_list); in pblk_line_close_meta()
1795 spin_unlock(&l_mg->close_lock); in pblk_line_close_meta()
1805 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_save_lba_list() local
1811 l_mg->emeta_alloc_type, GFP_KERNEL); in pblk_save_lba_list()