Lines Matching refs:l_mg

495 	struct pblk_line_mgmt *l_mg = &pblk->l_mg;  in pblk_line_mg_free()  local
498 kfree(l_mg->bb_template); in pblk_line_mg_free()
499 kfree(l_mg->bb_aux); in pblk_line_mg_free()
500 kfree(l_mg->vsc_list); in pblk_line_mg_free()
503 kfree(l_mg->sline_meta[i]); in pblk_line_mg_free()
504 pblk_mfree(l_mg->eline_meta[i]->buf, l_mg->emeta_alloc_type); in pblk_line_mg_free()
505 kfree(l_mg->eline_meta[i]); in pblk_line_mg_free()
509 static void pblk_line_meta_free(struct pblk_line_mgmt *l_mg, in pblk_line_meta_free() argument
518 pblk_mfree(w_err_gc->lba_list, l_mg->emeta_alloc_type); in pblk_line_meta_free()
524 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_lines_free() local
528 spin_lock(&l_mg->free_lock); in pblk_lines_free()
529 for (i = 0; i < l_mg->nr_lines; i++) { in pblk_lines_free()
533 pblk_line_meta_free(l_mg, line); in pblk_lines_free()
535 spin_unlock(&l_mg->free_lock); in pblk_lines_free()
641 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in calc_emeta_len() local
657 lm->emeta_sec[3] = DIV_ROUND_UP(l_mg->nr_lines * sizeof(u32), in calc_emeta_len()
661 lm->vsc_list_len = l_mg->nr_lines * sizeof(u32); in calc_emeta_len()
669 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_set_provision() local
693 sec_meta = (lm->smeta_sec + lm->emeta_sec[0]) * l_mg->nr_free_lines; in pblk_set_provision()
795 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_setup_line_meta() local
804 line->vsc = &l_mg->vsc_list[line_id]; in pblk_setup_line_meta()
816 list_add_tail(&line->list, &l_mg->bad_list); in pblk_setup_line_meta()
821 list_add_tail(&line->list, &l_mg->free_list); in pblk_setup_line_meta()
822 l_mg->nr_free_lines++; in pblk_setup_line_meta()
864 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_line_mg_init() local
868 l_mg->nr_lines = geo->num_chk; in pblk_line_mg_init()
869 l_mg->log_line = l_mg->data_line = NULL; in pblk_line_mg_init()
870 l_mg->l_seq_nr = l_mg->d_seq_nr = 0; in pblk_line_mg_init()
871 l_mg->nr_free_lines = 0; in pblk_line_mg_init()
872 bitmap_zero(&l_mg->meta_bitmap, PBLK_DATA_LINES); in pblk_line_mg_init()
874 INIT_LIST_HEAD(&l_mg->free_list); in pblk_line_mg_init()
875 INIT_LIST_HEAD(&l_mg->corrupt_list); in pblk_line_mg_init()
876 INIT_LIST_HEAD(&l_mg->bad_list); in pblk_line_mg_init()
877 INIT_LIST_HEAD(&l_mg->gc_full_list); in pblk_line_mg_init()
878 INIT_LIST_HEAD(&l_mg->gc_high_list); in pblk_line_mg_init()
879 INIT_LIST_HEAD(&l_mg->gc_mid_list); in pblk_line_mg_init()
880 INIT_LIST_HEAD(&l_mg->gc_low_list); in pblk_line_mg_init()
881 INIT_LIST_HEAD(&l_mg->gc_empty_list); in pblk_line_mg_init()
882 INIT_LIST_HEAD(&l_mg->gc_werr_list); in pblk_line_mg_init()
884 INIT_LIST_HEAD(&l_mg->emeta_list); in pblk_line_mg_init()
886 l_mg->gc_lists[0] = &l_mg->gc_werr_list; in pblk_line_mg_init()
887 l_mg->gc_lists[1] = &l_mg->gc_high_list; in pblk_line_mg_init()
888 l_mg->gc_lists[2] = &l_mg->gc_mid_list; in pblk_line_mg_init()
889 l_mg->gc_lists[3] = &l_mg->gc_low_list; in pblk_line_mg_init()
891 spin_lock_init(&l_mg->free_lock); in pblk_line_mg_init()
892 spin_lock_init(&l_mg->close_lock); in pblk_line_mg_init()
893 spin_lock_init(&l_mg->gc_lock); in pblk_line_mg_init()
895 l_mg->vsc_list = kcalloc(l_mg->nr_lines, sizeof(__le32), GFP_KERNEL); in pblk_line_mg_init()
896 if (!l_mg->vsc_list) in pblk_line_mg_init()
899 l_mg->bb_template = kzalloc(lm->sec_bitmap_len, GFP_KERNEL); in pblk_line_mg_init()
900 if (!l_mg->bb_template) in pblk_line_mg_init()
903 l_mg->bb_aux = kzalloc(lm->sec_bitmap_len, GFP_KERNEL); in pblk_line_mg_init()
904 if (!l_mg->bb_aux) in pblk_line_mg_init()
911 l_mg->sline_meta[i] = kmalloc(lm->smeta_len, GFP_KERNEL); in pblk_line_mg_init()
912 if (!l_mg->sline_meta[i]) in pblk_line_mg_init()
927 l_mg->emeta_alloc_type = PBLK_VMALLOC_META; in pblk_line_mg_init()
936 l_mg->eline_meta[i] = emeta; in pblk_line_mg_init()
938 l_mg->emeta_alloc_type = PBLK_KMALLOC_META; in pblk_line_mg_init()
947 l_mg->eline_meta[i] = emeta; in pblk_line_mg_init()
951 for (i = 0; i < l_mg->nr_lines; i++) in pblk_line_mg_init()
952 l_mg->vsc_list[i] = cpu_to_le32(EMPTY_ENTRY); in pblk_line_mg_init()
956 bitmap_set(l_mg->bb_template, i, geo->ws_opt); in pblk_line_mg_init()
962 if (l_mg->emeta_alloc_type == PBLK_VMALLOC_META) in pblk_line_mg_init()
963 vfree(l_mg->eline_meta[i]->buf); in pblk_line_mg_init()
965 kfree(l_mg->eline_meta[i]->buf); in pblk_line_mg_init()
966 kfree(l_mg->eline_meta[i]); in pblk_line_mg_init()
970 kfree(l_mg->sline_meta[i]); in pblk_line_mg_init()
971 kfree(l_mg->bb_aux); in pblk_line_mg_init()
973 kfree(l_mg->bb_template); in pblk_line_mg_init()
975 kfree(l_mg->vsc_list); in pblk_line_mg_init()
1043 struct pblk_line_mgmt *l_mg = &pblk->l_mg; in pblk_lines_init() local
1067 pblk->lines = kcalloc(l_mg->nr_lines, sizeof(struct pblk_line), in pblk_lines_init()
1074 for (i = 0; i < l_mg->nr_lines; i++) { in pblk_lines_init()
1096 pblk_line_meta_free(l_mg, &pblk->lines[i]); in pblk_lines_init()
1296 geo->all_luns, pblk->l_mg.nr_lines, in pblk_init()