Lines Matching defs: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;
185 dst->entries[i].pnum = src->entries[i].pnum;
438 return vol->eba_tbl->entries[lnum].pnum >= 0;
454 int err, pnum, vol_id = vol->vol_id;
463 pnum = vol->eba_tbl->entries[lnum].pnum;
464 if (pnum < 0)
468 dbg_eba("erase LEB %d:%d, PEB %d", vol_id, lnum, pnum);
471 vol->eba_tbl->entries[lnum].pnum = UBI_LEB_UNMAPPED;
473 err = ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 0);
486 * @pnum: physical eraseblock number
499 int *pnum)
515 err = ubi_io_read_vid_hdr(ubi, *pnum, vidb, 0);
533 vol->eba_tbl->entries[lnum].pnum = UBI_LEB_UNMAPPED;
535 ubi_wl_put_peb(ubi, vol->vol_id, lnum, *pnum, torture);
537 *pnum = UBI_LEB_UNMAPPED;
540 *pnum, err);
554 *pnum, found_vol_id, found_lnum, vol->vol_id, lnum);
571 int *pnum)
599 int err, pnum, scrub = 0, vol_id = vol->vol_id;
608 pnum = vol->eba_tbl->entries[lnum].pnum;
609 if (pnum >= 0) {
610 err = check_mapping(ubi, vol, lnum, &pnum);
615 if (pnum == UBI_LEB_UNMAPPED) {
630 len, offset, vol_id, lnum, pnum);
645 err = ubi_io_read_vid_hdr(ubi, pnum, vidb, 1);
659 pnum, vol_id, lnum);
694 err = ubi_io_read_data(ubi, buf, pnum, offset, len);
722 err = ubi_wl_scrub_peb(ubi, pnum);
792 * @pnum: the physical eraseblock to recover
807 static int try_recover_peb(struct ubi_volume *vol, int pnum, int lnum,
825 pnum, new_pnum);
827 err = ubi_io_read_vid_hdr(ubi, pnum, vidb, 1);
842 err = ubi_io_read_data(ubi, ubi->peb_buf, pnum, 0, offset);
867 vol->eba_tbl->entries[lnum].pnum = new_pnum;
873 ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 1);
890 * @pnum: the physical eraseblock to recover
903 static int recover_peb(struct ubi_device *ubi, int pnum, int vol_id, int lnum,
917 err = try_recover_peb(vol, pnum, lnum, buf, offset, len, vidb,
950 int pnum, opnum, err, err2, vol_id = vol->vol_id;
952 pnum = ubi_wl_get_peb(ubi);
953 if (pnum < 0) {
954 err = pnum;
958 opnum = vol->eba_tbl->entries[lnum].pnum;
961 len, offset, vol_id, lnum, pnum);
963 err = ubi_io_write_vid_hdr(ubi, pnum, vidb);
966 vol_id, lnum, pnum);
971 err = ubi_io_write_data(ubi, buf, pnum, offset, len);
975 len, offset, vol_id, lnum, pnum);
980 vol->eba_tbl->entries[lnum].pnum = pnum;
985 if (err && pnum >= 0) {
986 err2 = ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 1);
989 pnum, err2);
1020 int err, pnum, tries, vol_id = vol->vol_id;
1031 pnum = vol->eba_tbl->entries[lnum].pnum;
1032 if (pnum >= 0) {
1033 err = check_mapping(ubi, vol, lnum, &pnum);
1038 if (pnum >= 0) {
1040 len, offset, vol_id, lnum, pnum);
1042 err = ubi_io_write_data(ubi, buf, pnum, offset, len);
1044 ubi_warn(ubi, "failed to write data to PEB %d", pnum);
1046 err = recover_peb(ubi, pnum, vol_id, lnum, buf,
1159 ubi_assert(vol->eba_tbl->entries[lnum].pnum < 0);
1375 if (vol->eba_tbl->entries[lnum].pnum != from) {
1377 vol_id, lnum, from, vol->eba_tbl->entries[lnum].pnum);
1462 ubi_assert(vol->eba_tbl->entries[lnum].pnum == from);
1463 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;