Lines Matching refs:l_mg

542 	struct pblk_line_mgmt *l_mg = &pblk->l_mg;
545 kfree(l_mg->bb_template);
546 kfree(l_mg->bb_aux);
547 kfree(l_mg->vsc_list);
550 kfree(l_mg->sline_meta[i]);
551 kvfree(l_mg->eline_meta[i]->buf);
552 kfree(l_mg->eline_meta[i]);
555 mempool_destroy(l_mg->bitmap_pool);
556 kmem_cache_destroy(l_mg->bitmap_cache);
559 static void pblk_line_meta_free(struct pblk_line_mgmt *l_mg,
574 struct pblk_line_mgmt *l_mg = &pblk->l_mg;
578 for (i = 0; i < l_mg->nr_lines; i++) {
582 pblk_line_meta_free(l_mg, line);
628 struct pblk_line_mgmt *l_mg = &pblk->l_mg;
644 lm->emeta_sec[3] = DIV_ROUND_UP(l_mg->nr_lines * sizeof(u32),
648 lm->vsc_list_len = l_mg->nr_lines * sizeof(u32);
656 struct pblk_line_mgmt *l_mg = &pblk->l_mg;
697 sec_meta = (lm->smeta_sec + lm->emeta_sec[0]) * l_mg->nr_free_lines;
759 struct pblk_line_mgmt *l_mg = &pblk->l_mg;
768 line->vsc = &l_mg->vsc_list[line_id];
777 list_add_tail(&line->list, &l_mg->bad_list);
782 list_add_tail(&line->list, &l_mg->free_list);
783 l_mg->nr_free_lines++;
825 struct pblk_line_mgmt *l_mg = &pblk->l_mg;
829 l_mg->nr_lines = geo->num_chk;
830 l_mg->log_line = l_mg->data_line = NULL;
831 l_mg->l_seq_nr = l_mg->d_seq_nr = 0;
832 l_mg->nr_free_lines = 0;
833 bitmap_zero(&l_mg->meta_bitmap, PBLK_DATA_LINES);
835 INIT_LIST_HEAD(&l_mg->free_list);
836 INIT_LIST_HEAD(&l_mg->corrupt_list);
837 INIT_LIST_HEAD(&l_mg->bad_list);
838 INIT_LIST_HEAD(&l_mg->gc_full_list);
839 INIT_LIST_HEAD(&l_mg->gc_high_list);
840 INIT_LIST_HEAD(&l_mg->gc_mid_list);
841 INIT_LIST_HEAD(&l_mg->gc_low_list);
842 INIT_LIST_HEAD(&l_mg->gc_empty_list);
843 INIT_LIST_HEAD(&l_mg->gc_werr_list);
845 INIT_LIST_HEAD(&l_mg->emeta_list);
847 l_mg->gc_lists[0] = &l_mg->gc_werr_list;
848 l_mg->gc_lists[1] = &l_mg->gc_high_list;
849 l_mg->gc_lists[2] = &l_mg->gc_mid_list;
850 l_mg->gc_lists[3] = &l_mg->gc_low_list;
852 spin_lock_init(&l_mg->free_lock);
853 spin_lock_init(&l_mg->close_lock);
854 spin_lock_init(&l_mg->gc_lock);
856 l_mg->vsc_list = kcalloc(l_mg->nr_lines, sizeof(__le32), GFP_KERNEL);
857 if (!l_mg->vsc_list)
860 l_mg->bb_template = kzalloc(lm->sec_bitmap_len, GFP_KERNEL);
861 if (!l_mg->bb_template)
864 l_mg->bb_aux = kzalloc(lm->sec_bitmap_len, GFP_KERNEL);
865 if (!l_mg->bb_aux)
872 l_mg->sline_meta[i] = kmalloc(lm->smeta_len, GFP_KERNEL);
873 if (!l_mg->sline_meta[i])
877 l_mg->bitmap_cache = kmem_cache_create("pblk_lm_bitmap",
879 if (!l_mg->bitmap_cache)
883 l_mg->bitmap_pool = mempool_create_slab_pool(PBLK_DATA_LINES * 2,
884 l_mg->bitmap_cache);
885 if (!l_mg->bitmap_pool)
905 l_mg->eline_meta[i] = emeta;
908 for (i = 0; i < l_mg->nr_lines; i++)
909 l_mg->vsc_list[i] = cpu_to_le32(EMPTY_ENTRY);
913 bitmap_set(l_mg->bb_template, i, geo->ws_opt);
919 kvfree(l_mg->eline_meta[i]->buf);
920 kfree(l_mg->eline_meta[i]);
923 mempool_destroy(l_mg->bitmap_pool);
925 kmem_cache_destroy(l_mg->bitmap_cache);
928 kfree(l_mg->sline_meta[i]);
929 kfree(l_mg->bb_aux);
931 kfree(l_mg->bb_template);
933 kfree(l_mg->vsc_list);
1001 struct pblk_line_mgmt *l_mg = &pblk->l_mg;
1025 pblk->lines = kcalloc(l_mg->nr_lines, sizeof(struct pblk_line),
1032 for (i = 0; i < l_mg->nr_lines; i++) {
1060 pblk_line_meta_free(l_mg, &pblk->lines[i]);
1258 geo->all_luns, pblk->l_mg.nr_lines,