Lines Matching defs:lnum

22  * They are indexed by (@vol_id, @lnum) pairs.
85 * @lnum: logical eraseblock number
92 int lnum)
107 if (lnum < le->lnum)
109 else if (lnum > le->lnum)
123 * @lnum: logical eraseblock number
125 * This function adds new entry for logical eraseblock (@vol_id, @lnum) to the
131 int vol_id, int lnum)
142 le->lnum = lnum;
145 le1 = ltree_lookup(ubi, vol_id, lnum);
173 ubi_assert(lnum != le1->lnum);
174 if (lnum < le1->lnum)
195 * @lnum: logical eraseblock number
200 static int leb_read_lock(struct ubi_device *ubi, int vol_id, int lnum)
204 le = ltree_add_entry(ubi, vol_id, lnum);
215 * @lnum: logical eraseblock number
217 static void leb_read_unlock(struct ubi_device *ubi, int vol_id, int lnum)
222 le = ltree_lookup(ubi, vol_id, lnum);
237 * @lnum: logical eraseblock number
242 static int leb_write_lock(struct ubi_device *ubi, int vol_id, int lnum)
246 le = ltree_add_entry(ubi, vol_id, lnum);
257 * @lnum: logical eraseblock number
264 static int leb_write_trylock(struct ubi_device *ubi, int vol_id, int lnum)
268 le = ltree_add_entry(ubi, vol_id, lnum);
291 * @lnum: logical eraseblock number
293 static void leb_write_unlock(struct ubi_device *ubi, int vol_id, int lnum)
298 le = ltree_lookup(ubi, vol_id, lnum);
313 * @lnum: logical eraseblock number
315 * This function un-maps logical eraseblock @lnum and schedules corresponding
320 int lnum)
327 err = leb_write_lock(ubi, vol_id, lnum);
331 pnum = vol->eba_tbl[lnum];
336 dbg_eba("erase LEB %d:%d, PEB %d", vol_id, lnum, pnum);
339 vol->eba_tbl[lnum] = UBI_LEB_UNMAPPED;
341 err = ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 0);
344 leb_write_unlock(ubi, vol_id, lnum);
352 * @lnum: logical eraseblock number
358 * If the logical eraseblock @lnum is unmapped, @buf is filled with 0xFF
367 int ubi_eba_read_leb(struct ubi_device *ubi, struct ubi_volume *vol, int lnum,
374 err = leb_read_lock(ubi, vol_id, lnum);
378 pnum = vol->eba_tbl[lnum];
386 len, offset, vol_id, lnum);
387 leb_read_unlock(ubi, vol_id, lnum);
394 len, offset, vol_id, lnum, pnum);
421 pnum, vol_id, lnum);
432 ubi_assert(lnum < be32_to_cpu(vid_hdr->used_ebs));
469 leb_read_unlock(ubi, vol_id, lnum);
475 leb_read_unlock(ubi, vol_id, lnum);
484 * @lnum: logical eraseblock number
495 struct ubi_sgl *sgl, int lnum, int offset, int len,
510 ret = ubi_eba_read_leb(ubi, vol, lnum,
541 * @lnum: logical eraseblock number
552 static int recover_peb(struct ubi_device *ubi, int pnum, int vol_id, int lnum,
614 vol->eba_tbl[lnum] = new_pnum;
616 ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 1);
624 ubi_wl_put_peb(ubi, vol_id, lnum, new_pnum, 1);
634 ubi_wl_put_peb(ubi, vol_id, lnum, new_pnum, 1);
647 * @lnum: logical eraseblock number
652 * This function writes data to logical eraseblock @lnum of a dynamic volume
657 int ubi_eba_write_leb(struct ubi_device *ubi, struct ubi_volume *vol, int lnum,
666 err = leb_write_lock(ubi, vol_id, lnum);
670 pnum = vol->eba_tbl[lnum];
673 len, offset, vol_id, lnum, pnum);
679 err = recover_peb(ubi, pnum, vol_id, lnum, buf,
684 leb_write_unlock(ubi, vol_id, lnum);
694 leb_write_unlock(ubi, vol_id, lnum);
701 vid_hdr->lnum = cpu_to_be32(lnum);
709 leb_write_unlock(ubi, vol_id, lnum);
715 len, offset, vol_id, lnum, pnum);
720 vol_id, lnum, pnum);
729 len, offset, vol_id, lnum, pnum);
735 vol->eba_tbl[lnum] = pnum;
738 leb_write_unlock(ubi, vol_id, lnum);
745 leb_write_unlock(ubi, vol_id, lnum);
755 err = ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 1);
758 leb_write_unlock(ubi, vol_id, lnum);
772 * @lnum: logical eraseblock number
777 * This function writes data to logical eraseblock @lnum of static volume
791 int lnum, const void *buf, int len, int used_ebs)
800 if (lnum == used_ebs - 1)
810 err = leb_write_lock(ubi, vol_id, lnum);
818 vid_hdr->lnum = cpu_to_be32(lnum);
832 leb_write_unlock(ubi, vol_id, lnum);
838 len, vol_id, lnum, pnum, used_ebs);
843 vol_id, lnum, pnum);
856 ubi_assert(vol->eba_tbl[lnum] < 0);
857 vol->eba_tbl[lnum] = pnum;
860 leb_write_unlock(ubi, vol_id, lnum);
872 leb_write_unlock(ubi, vol_id, lnum);
877 err = ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 1);
880 leb_write_unlock(ubi, vol_id, lnum);
894 * @lnum: logical eraseblock number
908 int lnum, const void *buf, int len)
922 err = ubi_eba_unmap_leb(ubi, vol, lnum);
925 return ubi_eba_write_leb(ubi, vol, lnum, NULL, 0, 0);
933 err = leb_write_lock(ubi, vol_id, lnum);
939 vid_hdr->lnum = cpu_to_be32(lnum);
958 vol_id, lnum, vol->eba_tbl[lnum], pnum);
963 vol_id, lnum, pnum);
976 old_pnum = vol->eba_tbl[lnum];
977 vol->eba_tbl[lnum] = pnum;
981 err = ubi_wl_put_peb(ubi, vol_id, lnum, old_pnum, 0);
987 leb_write_unlock(ubi, vol_id, lnum);
1004 err = ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 1);
1059 int err, vol_id, lnum, data_size, aldata_size, idx;
1064 lnum = be32_to_cpu(vid_hdr->lnum);
1066 dbg_wl("copy LEB %d:%d, PEB %d to PEB %d", vol_id, lnum, from, to);
1106 err = leb_write_trylock(ubi, vol_id, lnum);
1108 dbg_wl("contention on LEB %d:%d, cancel", vol_id, lnum);
1117 if (vol->eba_tbl[lnum] != from) {
1119 vol_id, lnum, from, vol->eba_tbl[lnum]);
1230 ubi_assert(vol->eba_tbl[lnum] == from);
1232 vol->eba_tbl[lnum] = to;
1238 leb_write_unlock(ubi, vol_id, lnum);
1342 scan_eba[i][aeb->lnum] = aeb->pnum;
1349 fm_eba[i][aeb->lnum] = aeb->pnum;
1426 if (aeb->lnum >= vol->reserved_pebs)
1433 vol->eba_tbl[aeb->lnum] = aeb->pnum;