Loading drivers/mtd/ubi/eba.c +12 −0 Original line number Diff line number Diff line Loading @@ -340,7 +340,9 @@ int ubi_eba_unmap_leb(struct ubi_device *ubi, struct ubi_volume *vol, dbg_eba("erase LEB %d:%d, PEB %d", vol_id, lnum, pnum); down_read(&ubi->fm_sem); vol->eba_tbl[lnum] = UBI_LEB_UNMAPPED; up_read(&ubi->fm_sem); err = ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 0); out_unlock: Loading Loading @@ -548,7 +550,9 @@ retry: mutex_unlock(&ubi->buf_mutex); ubi_free_vid_hdr(ubi, vid_hdr); down_read(&ubi->fm_sem); vol->eba_tbl[lnum] = new_pnum; up_read(&ubi->fm_sem); ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 1); ubi_msg("data was successfully recovered"); Loading Loading @@ -665,7 +669,9 @@ retry: } } down_read(&ubi->fm_sem); vol->eba_tbl[lnum] = pnum; up_read(&ubi->fm_sem); leb_write_unlock(ubi, vol_id, lnum); ubi_free_vid_hdr(ubi, vid_hdr); Loading Loading @@ -783,7 +789,9 @@ retry: } ubi_assert(vol->eba_tbl[lnum] < 0); down_read(&ubi->fm_sem); vol->eba_tbl[lnum] = pnum; up_read(&ubi->fm_sem); leb_write_unlock(ubi, vol_id, lnum); ubi_free_vid_hdr(ubi, vid_hdr); Loading Loading @@ -904,7 +912,9 @@ retry: goto out_leb_unlock; } down_read(&ubi->fm_sem); vol->eba_tbl[lnum] = pnum; up_read(&ubi->fm_sem); out_leb_unlock: leb_write_unlock(ubi, vol_id, lnum); Loading Loading @@ -1151,7 +1161,9 @@ int ubi_eba_copy_leb(struct ubi_device *ubi, int from, int to, } ubi_assert(vol->eba_tbl[lnum] == from); down_read(&ubi->fm_sem); vol->eba_tbl[lnum] = to; up_read(&ubi->fm_sem); out_unlock_buf: mutex_unlock(&ubi->buf_mutex); Loading Loading
drivers/mtd/ubi/eba.c +12 −0 Original line number Diff line number Diff line Loading @@ -340,7 +340,9 @@ int ubi_eba_unmap_leb(struct ubi_device *ubi, struct ubi_volume *vol, dbg_eba("erase LEB %d:%d, PEB %d", vol_id, lnum, pnum); down_read(&ubi->fm_sem); vol->eba_tbl[lnum] = UBI_LEB_UNMAPPED; up_read(&ubi->fm_sem); err = ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 0); out_unlock: Loading Loading @@ -548,7 +550,9 @@ retry: mutex_unlock(&ubi->buf_mutex); ubi_free_vid_hdr(ubi, vid_hdr); down_read(&ubi->fm_sem); vol->eba_tbl[lnum] = new_pnum; up_read(&ubi->fm_sem); ubi_wl_put_peb(ubi, vol_id, lnum, pnum, 1); ubi_msg("data was successfully recovered"); Loading Loading @@ -665,7 +669,9 @@ retry: } } down_read(&ubi->fm_sem); vol->eba_tbl[lnum] = pnum; up_read(&ubi->fm_sem); leb_write_unlock(ubi, vol_id, lnum); ubi_free_vid_hdr(ubi, vid_hdr); Loading Loading @@ -783,7 +789,9 @@ retry: } ubi_assert(vol->eba_tbl[lnum] < 0); down_read(&ubi->fm_sem); vol->eba_tbl[lnum] = pnum; up_read(&ubi->fm_sem); leb_write_unlock(ubi, vol_id, lnum); ubi_free_vid_hdr(ubi, vid_hdr); Loading Loading @@ -904,7 +912,9 @@ retry: goto out_leb_unlock; } down_read(&ubi->fm_sem); vol->eba_tbl[lnum] = pnum; up_read(&ubi->fm_sem); out_leb_unlock: leb_write_unlock(ubi, vol_id, lnum); Loading Loading @@ -1151,7 +1161,9 @@ int ubi_eba_copy_leb(struct ubi_device *ubi, int from, int to, } ubi_assert(vol->eba_tbl[lnum] == from); down_read(&ubi->fm_sem); vol->eba_tbl[lnum] = to; up_read(&ubi->fm_sem); out_unlock_buf: mutex_unlock(&ubi->buf_mutex); Loading