Lines Matching full:line

216 	struct pblk_line *line;  member
303 /* Line Types */
308 /* Line state */
345 __le16 type; /* line type */
348 __le32 id; /* line id for current line */
355 /* Previous line metadata */
356 __le32 prev_id; /* Line id for previous line */
358 /* Current line metadata */
359 __le64 seq_nr; /* Sequence number for current line */
379 * 4. u32 valid sector count (vsc) for all lines (~0U: free line)
386 /* Previous line metadata */
387 __le32 prev_id; /* Line id for prev line */
389 /* Current line metadata */
390 __le64 seq_nr; /* Sequence number for current line */
396 __le32 next_id; /* Line id for next line */
397 __le64 nr_lbas; /* Number of lbas mapped in line */
398 __le64 nr_valid_lbas; /* Number of valid lbas mapped in line */
399 __le64 bb_bitmap[]; /* Updated bad block bitmap for line */
434 unsigned int id; /* Line number corresponds to the
435 * block line
437 unsigned int seq_nr; /* Unique line sequence number */
444 unsigned long *lun_bitmap; /* Bitmap for LUNs mapped in line */
446 struct nvm_chk_meta *chks; /* Chunks forming line */
451 int meta_line; /* Metadata line id */
456 unsigned int sec_in_line; /* Number of usable secs in line */
458 atomic_t blk_in_line; /* Number of good blocks in line */
462 unsigned long *map_bitmap; /* Bitmap for mapped sectors in line */
463 unsigned long *invalid_bitmap; /* Bitmap for invalid sectors in line */
470 unsigned int nr_valid_lbas; /* Number of valid lbas in line */
472 __le32 *vsc; /* Valid sector count in line */
510 struct pblk_line *log_line; /* Current FTL log line */
511 struct pblk_line *data_line; /* Current data line */
512 struct pblk_line *log_next; /* Next FTL log line */
513 struct pblk_line *data_next; /* Next data line */
532 unsigned long d_seq_nr; /* Data line unique sequence number */
533 unsigned long l_seq_nr; /* Log line unique sequence number */
558 unsigned int sec_bitmap_len; /* Length for sector bitmap in line */
559 unsigned int blk_bitmap_len; /* Length for block bitmap in line */
560 unsigned int lun_bitmap_len; /* Length for lun bitmap in line */
562 unsigned int blk_per_line; /* Number of blocks in a full line */
563 unsigned int sec_per_line; /* Number of sectors in a line */
564 unsigned int dsec_per_line; /* Number of data sectors in a line */
565 unsigned int min_blk_line; /* Min. number of good blocks in line */
600 struct pblk_line *lines; /* Line array */
601 struct pblk_line_mgmt l_mg; /* Line management */
602 struct pblk_line_meta lm; /* Line metadata */
610 int state; /* pblk line state */
703 struct pblk_line *line; member
732 struct pblk_w_ctx w_ctx, struct pblk_line *line,
787 int pblk_line_recov_alloc(struct pblk *pblk, struct pblk_line *line);
788 void pblk_line_recov_close(struct pblk *pblk, struct pblk_line *line);
791 int pblk_line_erase(struct pblk *pblk, struct pblk_line *line);
792 int pblk_line_is_full(struct pblk_line *line);
793 void pblk_line_free(struct pblk_line *line);
794 void pblk_line_close_meta(struct pblk *pblk, struct pblk_line *line);
795 void pblk_line_close(struct pblk *pblk, struct pblk_line *line);
800 void pblk_gen_run_ws(struct pblk *pblk, struct pblk_line *line, void *priv,
803 u64 pblk_line_smeta_start(struct pblk *pblk, struct pblk_line *line);
804 int pblk_line_smeta_read(struct pblk *pblk, struct pblk_line *line);
805 int pblk_line_emeta_read(struct pblk *pblk, struct pblk_line *line,
810 struct list_head *pblk_line_gc_list(struct pblk *pblk, struct pblk_line *line);
811 u64 pblk_lookup_page(struct pblk *pblk, struct pblk_line *line);
812 void pblk_dealloc_page(struct pblk *pblk, struct pblk_line *line, int nr_secs);
813 u64 pblk_alloc_page(struct pblk *pblk, struct pblk_line *line, int nr_secs);
814 u64 __pblk_alloc_page(struct pblk *pblk, struct pblk_line *line, int nr_secs);
827 void __pblk_map_invalidate(struct pblk *pblk, struct pblk_line *line,
897 void pblk_put_line_back(struct pblk *pblk, struct pblk_line *line);
915 void pblk_rl_free_lines_inc(struct pblk_rl *rl, struct pblk_line *line);
916 void pblk_rl_free_lines_dec(struct pblk_rl *rl, struct pblk_line *line,
955 static inline int pblk_line_vsc(struct pblk_line *line) in pblk_line_vsc() argument
957 return le32_to_cpu(*line->vsc); in pblk_line_vsc()
1021 struct pblk_line *line = pblk_ppa_to_line(pblk, p); in pblk_dev_ppa_to_chunk() local
1024 return &line->chks[pos]; in pblk_dev_ppa_to_chunk()
1134 return ppa.c.line; in pblk_addr_to_cacheline()
1141 p.c.line = addr; in pblk_cacheline_to_addr()
1198 pblk_err(pblk, "ppa: (%s: %x) cache line: %llu\n", in print_ppa()
1199 msg, error, (u64)p->c.line); in print_ppa()
1276 struct pblk_line *line; in pblk_check_io() local
1280 line = pblk_ppa_to_line(pblk, ppa_list[i]); in pblk_check_io()
1282 spin_lock(&line->lock); in pblk_check_io()
1283 if (line->state != PBLK_LINESTATE_OPEN) { in pblk_check_io()
1284 pblk_err(pblk, "bad ppa: line:%d,state:%d\n", in pblk_check_io()
1285 line->id, line->state); in pblk_check_io()
1287 spin_unlock(&line->lock); in pblk_check_io()
1290 spin_unlock(&line->lock); in pblk_check_io()
1333 /* In a worst-case scenario every line will have OP invalid sectors. in pblk_get_min_chks()
1334 * We will then need a minimum of 1/OP lines to free up a single line in pblk_get_min_chks()