Lines Matching refs:pnum
41 * @pnum: the physical eraseblock number attached to the LEB
48 int pnum;
111 ldesc->pnum = vol->eba_tbl->entries[lnum].pnum;
140 tbl->entries[i].pnum = UBI_LEB_UNMAPPED;
184 dst->entries[i].pnum = src->entries[i].pnum;
437 return vol->eba_tbl->entries[lnum].pnum >= 0;
453 int err, pnum, vol_id = vol->vol_id;
462 pnum = vol->eba_tbl->entries[lnum].pnum;
463 if (pnum < 0)
467 dbg_eba("erase LEB %d:%d, PEB %d", vol_id, lnum, pnum);
470 vol->eba_tbl->entries[lnum].pnum = UBI_LEB_UNMAPPED;
472 err = ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 0);
485 * @pnum: physical eraseblock number
498 int *pnum)
514 err = ubi_io_read_vid_hdr(ubi, *pnum, vidb, 0);
532 vol->eba_tbl->entries[lnum].pnum = UBI_LEB_UNMAPPED;
534 ubi_wl_put_peb(ubi, vol->vol_id, lnum, *pnum, torture);
536 *pnum = UBI_LEB_UNMAPPED;
539 *pnum, err);
553 *pnum, found_vol_id, found_lnum, vol->vol_id, lnum);
570 int *pnum)
598 int err, pnum, scrub = 0, vol_id = vol->vol_id;
607 pnum = vol->eba_tbl->entries[lnum].pnum;
608 if (pnum >= 0) {
609 err = check_mapping(ubi, vol, lnum, &pnum);
614 if (pnum == UBI_LEB_UNMAPPED) {
629 len, offset, vol_id, lnum, pnum);
644 err = ubi_io_read_vid_hdr(ubi, pnum, vidb, 1);
658 pnum, vol_id, lnum);
693 err = ubi_io_read_data(ubi, buf, pnum, offset, len);
721 err = ubi_wl_scrub_peb(ubi, pnum);
791 * @pnum: the physical eraseblock to recover
806 static int try_recover_peb(struct ubi_volume *vol, int pnum, int lnum,
824 pnum, new_pnum);
826 err = ubi_io_read_vid_hdr(ubi, pnum, vidb, 1);
841 err = ubi_io_read_data(ubi, ubi->peb_buf, pnum, 0, offset);
866 vol->eba_tbl->entries[lnum].pnum = new_pnum;
872 ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 1);
889 * @pnum: the physical eraseblock to recover
902 static int recover_peb(struct ubi_device *ubi, int pnum, int vol_id, int lnum,
916 err = try_recover_peb(vol, pnum, lnum, buf, offset, len, vidb,
949 int pnum, opnum, err, err2, vol_id = vol->vol_id;
951 pnum = ubi_wl_get_peb(ubi);
952 if (pnum < 0) {
953 err = pnum;
957 opnum = vol->eba_tbl->entries[lnum].pnum;
960 len, offset, vol_id, lnum, pnum);
962 err = ubi_io_write_vid_hdr(ubi, pnum, vidb);
965 vol_id, lnum, pnum);
970 err = ubi_io_write_data(ubi, buf, pnum, offset, len);
974 len, offset, vol_id, lnum, pnum);
979 vol->eba_tbl->entries[lnum].pnum = pnum;
984 if (err && pnum >= 0) {
985 err2 = ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 1);
988 pnum, err2);
1019 int err, pnum, tries, vol_id = vol->vol_id;
1030 pnum = vol->eba_tbl->entries[lnum].pnum;
1031 if (pnum >= 0) {
1032 err = check_mapping(ubi, vol, lnum, &pnum);
1037 if (pnum >= 0) {
1039 len, offset, vol_id, lnum, pnum);
1041 err = ubi_io_write_data(ubi, buf, pnum, offset, len);
1043 ubi_warn(ubi, "failed to write data to PEB %d", pnum);
1045 err = recover_peb(ubi, pnum, vol_id, lnum, buf,
1158 ubi_assert(vol->eba_tbl->entries[lnum].pnum < 0);
1374 if (vol->eba_tbl->entries[lnum].pnum != from) {
1376 vol_id, lnum, from, vol->eba_tbl->entries[lnum].pnum);
1461 ubi_assert(vol->eba_tbl->entries[lnum].pnum == from);
1462 vol->eba_tbl->entries[lnum].pnum = to;
1574 scan_eba[i][aeb->lnum] = aeb->pnum;
1581 fm_eba[i][aeb->lnum] = aeb->pnum;
1668 entry->pnum = aeb->pnum;