Lines Matching refs:pnum
61 int pnum; member
124 ldesc->pnum = vol->eba_tbl->entries[lnum].pnum; in ubi_eba_get_ldesc()
153 tbl->entries[i].pnum = UBI_LEB_UNMAPPED; in ubi_eba_create_table()
198 dst->entries[i].pnum = src->entries[i].pnum; in ubi_eba_copy_table()
451 return vol->eba_tbl->entries[lnum].pnum >= 0; in ubi_eba_is_mapped()
467 int err, pnum, vol_id = vol->vol_id; in ubi_eba_unmap_leb() local
476 pnum = vol->eba_tbl->entries[lnum].pnum; in ubi_eba_unmap_leb()
477 if (pnum < 0) in ubi_eba_unmap_leb()
481 dbg_eba("erase LEB %d:%d, PEB %d", vol_id, lnum, pnum); in ubi_eba_unmap_leb()
484 vol->eba_tbl->entries[lnum].pnum = UBI_LEB_UNMAPPED; in ubi_eba_unmap_leb()
486 err = ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 0); in ubi_eba_unmap_leb()
512 int *pnum) in check_mapping() argument
528 err = ubi_io_read_vid_hdr(ubi, *pnum, vidb, 0); in check_mapping()
546 vol->eba_tbl->entries[lnum].pnum = UBI_LEB_UNMAPPED; in check_mapping()
548 ubi_wl_put_peb(ubi, vol->vol_id, lnum, *pnum, torture); in check_mapping()
550 *pnum = UBI_LEB_UNMAPPED; in check_mapping()
553 *pnum, err); in check_mapping()
567 *pnum, found_vol_id, found_lnum, vol->vol_id, lnum); in check_mapping()
584 int *pnum) in check_mapping() argument
612 int err, pnum, scrub = 0, vol_id = vol->vol_id; in ubi_eba_read_leb() local
621 pnum = vol->eba_tbl->entries[lnum].pnum; in ubi_eba_read_leb()
622 if (pnum >= 0) { in ubi_eba_read_leb()
623 err = check_mapping(ubi, vol, lnum, &pnum); in ubi_eba_read_leb()
628 if (pnum == UBI_LEB_UNMAPPED) { in ubi_eba_read_leb()
643 len, offset, vol_id, lnum, pnum); in ubi_eba_read_leb()
658 err = ubi_io_read_vid_hdr(ubi, pnum, vidb, 1); in ubi_eba_read_leb()
672 pnum, vol_id, lnum); in ubi_eba_read_leb()
707 err = ubi_io_read_data(ubi, buf, pnum, offset, len); in ubi_eba_read_leb()
735 err = ubi_wl_scrub_peb(ubi, pnum); in ubi_eba_read_leb()
820 static int try_recover_peb(struct ubi_volume *vol, int pnum, int lnum, in try_recover_peb() argument
838 pnum, new_pnum); in try_recover_peb()
840 err = ubi_io_read_vid_hdr(ubi, pnum, vidb, 1); in try_recover_peb()
855 err = ubi_io_read_data(ubi, ubi->peb_buf, pnum, 0, offset); in try_recover_peb()
880 vol->eba_tbl->entries[lnum].pnum = new_pnum; in try_recover_peb()
886 ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 1); in try_recover_peb()
916 static int recover_peb(struct ubi_device *ubi, int pnum, int vol_id, int lnum, in recover_peb() argument
930 err = try_recover_peb(vol, pnum, lnum, buf, offset, len, vidb, in recover_peb()
963 int pnum, opnum, err, vol_id = vol->vol_id; in try_write_vid_and_data() local
965 pnum = ubi_wl_get_peb(ubi); in try_write_vid_and_data()
966 if (pnum < 0) { in try_write_vid_and_data()
967 err = pnum; in try_write_vid_and_data()
971 opnum = vol->eba_tbl->entries[lnum].pnum; in try_write_vid_and_data()
974 len, offset, vol_id, lnum, pnum); in try_write_vid_and_data()
976 err = ubi_io_write_vid_hdr(ubi, pnum, vidb); in try_write_vid_and_data()
979 vol_id, lnum, pnum); in try_write_vid_and_data()
984 err = ubi_io_write_data(ubi, buf, pnum, offset, len); in try_write_vid_and_data()
988 len, offset, vol_id, lnum, pnum); in try_write_vid_and_data()
993 vol->eba_tbl->entries[lnum].pnum = pnum; in try_write_vid_and_data()
998 if (err && pnum >= 0) in try_write_vid_and_data()
999 err = ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 1); in try_write_vid_and_data()
1024 int err, pnum, tries, vol_id = vol->vol_id; in ubi_eba_write_leb() local
1035 pnum = vol->eba_tbl->entries[lnum].pnum; in ubi_eba_write_leb()
1036 if (pnum >= 0) { in ubi_eba_write_leb()
1037 err = check_mapping(ubi, vol, lnum, &pnum); in ubi_eba_write_leb()
1042 if (pnum >= 0) { in ubi_eba_write_leb()
1044 len, offset, vol_id, lnum, pnum); in ubi_eba_write_leb()
1046 err = ubi_io_write_data(ubi, buf, pnum, offset, len); in ubi_eba_write_leb()
1048 ubi_warn(ubi, "failed to write data to PEB %d", pnum); in ubi_eba_write_leb()
1050 err = recover_peb(ubi, pnum, vol_id, lnum, buf, in ubi_eba_write_leb()
1163 ubi_assert(vol->eba_tbl->entries[lnum].pnum < 0); in ubi_eba_write_leb_st()
1379 if (vol->eba_tbl->entries[lnum].pnum != from) { in ubi_eba_copy_leb()
1381 vol_id, lnum, from, vol->eba_tbl->entries[lnum].pnum); in ubi_eba_copy_leb()
1466 ubi_assert(vol->eba_tbl->entries[lnum].pnum == from); in ubi_eba_copy_leb()
1467 vol->eba_tbl->entries[lnum].pnum = to; in ubi_eba_copy_leb()
1578 scan_eba[i][aeb->lnum] = aeb->pnum; in self_check_eba()
1585 fm_eba[i][aeb->lnum] = aeb->pnum; in self_check_eba()
1672 entry->pnum = aeb->pnum; in ubi_eba_init()