• Home
  • Raw
  • Download

Lines Matching refs:vol

107 void ubi_eba_get_ldesc(struct ubi_volume *vol, int lnum,  in ubi_eba_get_ldesc()  argument
111 ldesc->pnum = vol->eba_tbl->entries[lnum].pnum; in ubi_eba_get_ldesc()
123 struct ubi_eba_table *ubi_eba_create_table(struct ubi_volume *vol, in ubi_eba_create_table() argument
173 void ubi_eba_copy_table(struct ubi_volume *vol, struct ubi_eba_table *dst, in ubi_eba_copy_table() argument
179 ubi_assert(dst && vol && vol->eba_tbl); in ubi_eba_copy_table()
181 src = vol->eba_tbl; in ubi_eba_copy_table()
194 void ubi_eba_replace_table(struct ubi_volume *vol, struct ubi_eba_table *tbl) in ubi_eba_replace_table() argument
196 ubi_eba_destroy_table(vol->eba_tbl); in ubi_eba_replace_table()
197 vol->eba_tbl = tbl; in ubi_eba_replace_table()
435 bool ubi_eba_is_mapped(struct ubi_volume *vol, int lnum) in ubi_eba_is_mapped() argument
437 return vol->eba_tbl->entries[lnum].pnum >= 0; in ubi_eba_is_mapped()
450 int ubi_eba_unmap_leb(struct ubi_device *ubi, struct ubi_volume *vol, in ubi_eba_unmap_leb() argument
453 int err, pnum, vol_id = vol->vol_id; in ubi_eba_unmap_leb()
462 pnum = vol->eba_tbl->entries[lnum].pnum; in ubi_eba_unmap_leb()
470 vol->eba_tbl->entries[lnum].pnum = UBI_LEB_UNMAPPED; in ubi_eba_unmap_leb()
497 static int check_mapping(struct ubi_device *ubi, struct ubi_volume *vol, int lnum, in check_mapping() argument
507 if (!vol->checkmap || test_bit(lnum, vol->checkmap)) in check_mapping()
532 vol->eba_tbl->entries[lnum].pnum = UBI_LEB_UNMAPPED; in check_mapping()
534 ubi_wl_put_peb(ubi, vol->vol_id, lnum, *pnum, torture); in check_mapping()
551 if (found_lnum != lnum || found_vol_id != vol->vol_id) { in check_mapping()
553 *pnum, found_vol_id, found_lnum, vol->vol_id, lnum); in check_mapping()
560 set_bit(lnum, vol->checkmap); in check_mapping()
569 static int check_mapping(struct ubi_device *ubi, struct ubi_volume *vol, int lnum, in check_mapping() argument
595 int ubi_eba_read_leb(struct ubi_device *ubi, struct ubi_volume *vol, int lnum, in ubi_eba_read_leb() argument
598 int err, pnum, scrub = 0, vol_id = vol->vol_id; in ubi_eba_read_leb()
607 pnum = vol->eba_tbl->entries[lnum].pnum; in ubi_eba_read_leb()
609 err = check_mapping(ubi, vol, lnum, &pnum); in ubi_eba_read_leb()
623 ubi_assert(vol->vol_type != UBI_STATIC_VOLUME); in ubi_eba_read_leb()
631 if (vol->vol_type == UBI_DYNAMIC_VOLUME) in ubi_eba_read_leb()
698 if (vol->vol_type == UBI_DYNAMIC_VOLUME) in ubi_eba_read_leb()
747 int ubi_eba_read_leb_sg(struct ubi_device *ubi, struct ubi_volume *vol, in ubi_eba_read_leb_sg() argument
763 ret = ubi_eba_read_leb(ubi, vol, lnum, in ubi_eba_read_leb_sg()
806 static int try_recover_peb(struct ubi_volume *vol, int pnum, int lnum, in try_recover_peb() argument
810 struct ubi_device *ubi = vol->ubi; in try_recover_peb()
812 int new_pnum, err, vol_id = vol->vol_id, data_size; in try_recover_peb()
866 vol->eba_tbl->entries[lnum].pnum = new_pnum; in try_recover_peb()
906 struct ubi_volume *vol = ubi->volumes[idx]; in recover_peb() local
916 err = try_recover_peb(vol, pnum, lnum, buf, offset, len, vidb, in recover_peb()
944 static int try_write_vid_and_data(struct ubi_volume *vol, int lnum, in try_write_vid_and_data() argument
948 struct ubi_device *ubi = vol->ubi; in try_write_vid_and_data()
949 int pnum, opnum, err, err2, vol_id = vol->vol_id; in try_write_vid_and_data()
957 opnum = vol->eba_tbl->entries[lnum].pnum; in try_write_vid_and_data()
979 vol->eba_tbl->entries[lnum].pnum = pnum; in try_write_vid_and_data()
1016 int ubi_eba_write_leb(struct ubi_device *ubi, struct ubi_volume *vol, int lnum, in ubi_eba_write_leb() argument
1019 int err, pnum, tries, vol_id = vol->vol_id; in ubi_eba_write_leb()
1030 pnum = vol->eba_tbl->entries[lnum].pnum; in ubi_eba_write_leb()
1032 err = check_mapping(ubi, vol, lnum, &pnum); in ubi_eba_write_leb()
1069 vid_hdr->data_pad = cpu_to_be32(vol->data_pad); in ubi_eba_write_leb()
1072 err = try_write_vid_and_data(vol, lnum, vidb, buf, offset, len); in ubi_eba_write_leb()
1119 int ubi_eba_write_leb_st(struct ubi_device *ubi, struct ubi_volume *vol, in ubi_eba_write_leb_st() argument
1122 int err, tries, data_size = len, vol_id = vol->vol_id; in ubi_eba_write_leb_st()
1150 vid_hdr->data_pad = cpu_to_be32(vol->data_pad); in ubi_eba_write_leb_st()
1158 ubi_assert(vol->eba_tbl->entries[lnum].pnum < 0); in ubi_eba_write_leb_st()
1161 err = try_write_vid_and_data(vol, lnum, vidb, buf, 0, len); in ubi_eba_write_leb_st()
1197 int ubi_eba_atomic_leb_change(struct ubi_device *ubi, struct ubi_volume *vol, in ubi_eba_atomic_leb_change() argument
1200 int err, tries, vol_id = vol->vol_id; in ubi_eba_atomic_leb_change()
1213 err = ubi_eba_unmap_leb(ubi, vol, lnum); in ubi_eba_atomic_leb_change()
1216 return ubi_eba_write_leb(ubi, vol, lnum, NULL, 0, 0); in ubi_eba_atomic_leb_change()
1234 vid_hdr->data_pad = cpu_to_be32(vol->data_pad); in ubi_eba_atomic_leb_change()
1245 err = try_write_vid_and_data(vol, lnum, vidb, buf, 0, len); in ubi_eba_atomic_leb_change()
1315 struct ubi_volume *vol; in ubi_eba_copy_leb() local
1340 vol = ubi->volumes[idx]; in ubi_eba_copy_leb()
1342 if (!vol) { in ubi_eba_copy_leb()
1374 if (vol->eba_tbl->entries[lnum].pnum != from) { in ubi_eba_copy_leb()
1376 vol_id, lnum, from, vol->eba_tbl->entries[lnum].pnum); in ubi_eba_copy_leb()
1461 ubi_assert(vol->eba_tbl->entries[lnum].pnum == from); in ubi_eba_copy_leb()
1462 vol->eba_tbl->entries[lnum].pnum = to; in ubi_eba_copy_leb()
1529 struct ubi_volume *vol; in self_check_eba() local
1546 vol = ubi->volumes[i]; in self_check_eba()
1547 if (!vol) in self_check_eba()
1550 scan_eba[i] = kmalloc_array(vol->reserved_pebs, in self_check_eba()
1558 fm_eba[i] = kmalloc_array(vol->reserved_pebs, in self_check_eba()
1566 for (j = 0; j < vol->reserved_pebs; j++) in self_check_eba()
1583 for (j = 0; j < vol->reserved_pebs; j++) { in self_check_eba()
1590 vol->vol_id, j, fm_eba[i][j], in self_check_eba()
1623 struct ubi_volume *vol; in ubi_eba_init() local
1639 vol = ubi->volumes[i]; in ubi_eba_init()
1640 if (!vol) in ubi_eba_init()
1645 tbl = ubi_eba_create_table(vol, vol->reserved_pebs); in ubi_eba_init()
1651 ubi_eba_replace_table(vol, tbl); in ubi_eba_init()
1658 if (aeb->lnum >= vol->reserved_pebs) { in ubi_eba_init()
1667 entry = &vol->eba_tbl->entries[aeb->lnum]; in ubi_eba_init()