Lines Matching refs:lm

627 	struct pblk_line_meta *lm = &pblk->lm;
633 lm->emeta_sec[1] = DIV_ROUND_UP(
634 sizeof(struct line_emeta) + lm->blk_bitmap_len +
636 lm->emeta_len[1] = lm->emeta_sec[1] * geo->csecs;
639 lm->dsec_per_line = lm->sec_per_line - lm->emeta_sec[0];
640 lm->emeta_sec[2] = DIV_ROUND_UP(lm->dsec_per_line * sizeof(u64),
642 lm->emeta_len[2] = lm->emeta_sec[2] * geo->csecs;
644 lm->emeta_sec[3] = DIV_ROUND_UP(l_mg->nr_lines * sizeof(u32),
646 lm->emeta_len[3] = lm->emeta_sec[3] * geo->csecs;
648 lm->vsc_list_len = l_mg->nr_lines * sizeof(u32);
650 return (lm->emeta_len[1] + lm->emeta_len[2] + lm->emeta_len[3]);
657 struct pblk_line_meta *lm = &pblk->lm;
697 sec_meta = (lm->smeta_sec + lm->emeta_sec[0]) * l_mg->nr_free_lines;
714 struct pblk_line_meta *lm = &pblk->lm;
717 for (i = 0; i < lm->blk_per_line; i++) {
760 struct pblk_line_meta *lm = &pblk->lm;
773 chk_in_line = lm->blk_per_line - nr_bad_chks;
774 if (nr_bad_chks < 0 || nr_bad_chks > lm->blk_per_line ||
775 chk_in_line < lm->min_blk_line) {
790 struct pblk_line_meta *lm = &pblk->lm;
792 line->blk_bitmap = kzalloc(lm->blk_bitmap_len, GFP_KERNEL);
796 line->erase_bitmap = kzalloc(lm->blk_bitmap_len, GFP_KERNEL);
801 line->chks = kmalloc_array(lm->blk_per_line,
826 struct pblk_line_meta *lm = &pblk->lm;
860 l_mg->bb_template = kzalloc(lm->sec_bitmap_len, GFP_KERNEL);
864 l_mg->bb_aux = kzalloc(lm->sec_bitmap_len, GFP_KERNEL);
872 l_mg->sline_meta[i] = kmalloc(lm->smeta_len, GFP_KERNEL);
878 lm->sec_bitmap_len, 0, 0, NULL);
898 emeta->buf = kvmalloc(lm->emeta_len[0], GFP_KERNEL);
904 emeta->nr_entries = lm->emeta_sec[0];
912 for (i = 0; i < lm->sec_per_line; i += bb_distance)
942 struct pblk_line_meta *lm = &pblk->lm;
946 lm->sec_per_line = geo->clba * geo->all_luns;
947 lm->blk_per_line = geo->all_luns;
948 lm->blk_bitmap_len = BITS_TO_LONGS(geo->all_luns) * sizeof(long);
949 lm->sec_bitmap_len = BITS_TO_LONGS(lm->sec_per_line) * sizeof(long);
950 lm->lun_bitmap_len = BITS_TO_LONGS(geo->all_luns) * sizeof(long);
951 lm->mid_thrs = lm->sec_per_line / 2;
952 lm->high_thrs = lm->sec_per_line / 4;
953 lm->meta_distance = (geo->all_luns / 2) * pblk->min_write_pgs;
960 lm->smeta_sec = i * geo->ws_opt;
961 lm->smeta_len = lm->smeta_sec * geo->csecs;
963 smeta_len = sizeof(struct line_smeta) + lm->lun_bitmap_len;
964 if (smeta_len > lm->smeta_len) {
974 lm->emeta_sec[0] = i * geo->ws_opt;
975 lm->emeta_len[0] = lm->emeta_sec[0] * geo->csecs;
978 if (emeta_len > lm->emeta_len[0]) {
983 lm->emeta_bb = geo->all_luns > i ? geo->all_luns - i : 0;
985 lm->min_blk_line = 1;
987 lm->min_blk_line += DIV_ROUND_UP(lm->smeta_sec +
988 lm->emeta_sec[0], geo->clba);
990 if (lm->min_blk_line > lm->blk_per_line) {
992 lm->blk_per_line);