Lines Matching refs:ubi

54 static int set_update_marker(struct ubi_device *ubi, struct ubi_volume *vol)  in set_update_marker()  argument
62 ubi_assert(ubi->vtbl[vol->vol_id].upd_marker); in set_update_marker()
67 vtbl_rec = ubi->vtbl[vol->vol_id]; in set_update_marker()
70 mutex_lock(&ubi->device_mutex); in set_update_marker()
71 err = ubi_change_vtbl_record(ubi, vol->vol_id, &vtbl_rec); in set_update_marker()
73 mutex_unlock(&ubi->device_mutex); in set_update_marker()
87 static int clear_update_marker(struct ubi_device *ubi, struct ubi_volume *vol, in clear_update_marker() argument
95 vtbl_rec = ubi->vtbl[vol->vol_id]; in clear_update_marker()
110 mutex_lock(&ubi->device_mutex); in clear_update_marker()
111 err = ubi_change_vtbl_record(ubi, vol->vol_id, &vtbl_rec); in clear_update_marker()
113 mutex_unlock(&ubi->device_mutex); in clear_update_marker()
127 int ubi_start_update(struct ubi_device *ubi, struct ubi_volume *vol, in ubi_start_update() argument
136 vol->upd_buf = vmalloc(ubi->leb_size); in ubi_start_update()
140 err = set_update_marker(ubi, vol); in ubi_start_update()
146 err = ubi_eba_unmap_leb(ubi, vol, i); in ubi_start_update()
152 err = ubi_wl_flush(ubi, UBI_ALL, UBI_ALL); in ubi_start_update()
156 err = clear_update_marker(ubi, vol, 0); in ubi_start_update()
181 int ubi_start_leb_change(struct ubi_device *ubi, struct ubi_volume *vol, in ubi_start_leb_change() argument
189 return ubi_eba_atomic_leb_change(ubi, vol, req->lnum, NULL, 0); in ubi_start_leb_change()
196 vol->upd_buf = vmalloc(ALIGN((int)req->bytes, ubi->min_io_size)); in ubi_start_leb_change()
232 static int write_leb(struct ubi_device *ubi, struct ubi_volume *vol, int lnum, in write_leb() argument
238 int l = ALIGN(len, ubi->min_io_size); in write_leb()
241 len = ubi_calc_data_len(ubi, buf, l); in write_leb()
247 err = ubi_eba_write_leb(ubi, vol, lnum, buf, 0, len); in write_leb()
259 err = ubi_eba_write_leb_st(ubi, vol, lnum, buf, len, used_ebs); in write_leb()
278 int ubi_more_update_data(struct ubi_device *ubi, struct ubi_volume *vol, in ubi_more_update_data() argument
286 if (ubi->ro_mode) in ubi_more_update_data()
322 err = write_leb(ubi, vol, lnum, vol->upd_buf, flush_len, in ubi_more_update_data()
350 err = write_leb(ubi, vol, lnum, vol->upd_buf, in ubi_more_update_data()
364 err = ubi_wl_flush(ubi, UBI_ALL, UBI_ALL); in ubi_more_update_data()
368 err = clear_update_marker(ubi, vol, vol->upd_bytes); in ubi_more_update_data()
393 int ubi_more_leb_change_data(struct ubi_device *ubi, struct ubi_volume *vol, in ubi_more_leb_change_data() argument
401 if (ubi->ro_mode) in ubi_more_leb_change_data()
414 int len = ALIGN((int)vol->upd_bytes, ubi->min_io_size); in ubi_more_leb_change_data()
418 len = ubi_calc_data_len(ubi, vol->upd_buf, len); in ubi_more_leb_change_data()
419 err = ubi_eba_atomic_leb_change(ubi, vol, vol->ch_lnum, in ubi_more_leb_change_data()