Lines Matching refs:ubi
33 #include <mtd/ubi-user.h>
34 #include "ubi.h"
49 spin_lock(&vol->ubi->volumes_lock);
53 ubi_err(vol->ubi, "%d users for volume %d", users, vol->vol_id);
61 spin_unlock(&vol->ubi->volumes_lock);
75 spin_lock(&vol->ubi->volumes_lock);
87 spin_unlock(&vol->ubi->volumes_lock);
123 vol->ubi->ubi_num, vol->vol_id, desc->mode);
126 ubi_warn(vol->ubi, "update of volume %d not finished, volume is damaged",
133 vol->upd_received, vol->upd_bytes, vol->ubi->ubi_num,
150 ubi_err(vol->ubi, "updating");
161 struct ubi_device *ubi = desc->vol->ubi;
165 err = ubi_sync(ubi->ubi_num);
176 struct ubi_device *ubi = vol->ubi;
185 ubi_err(vol->ubi, "updating");
189 ubi_err(vol->ubi, "damaged volume, update marker is set");
203 tbuf_size = ALIGN(count, ubi->min_io_size);
217 err = ubi_eba_read_leb(ubi, vol, lnum, tbuf, off, len, 0);
253 struct ubi_device *ubi = vol->ubi;
268 if (off & (ubi->min_io_size - 1)) {
269 ubi_err(ubi, "unaligned position");
277 if (count & (ubi->min_io_size - 1)) {
278 ubi_err(ubi, "unaligned write length");
284 tbuf_size = ALIGN(count, ubi->min_io_size);
303 err = ubi_eba_write_leb(ubi, vol, lnum, tbuf, off, len);
329 struct ubi_device *ubi = vol->ubi;
335 err = ubi_more_update_data(ubi, vol, buf, count);
337 err = ubi_more_leb_change_data(ubi, vol, buf, count);
340 ubi_err(ubi, "cannot accept more %zd bytes of data, error %d",
361 err = ubi_check_volume(ubi, vol->vol_id);
366 ubi_warn(ubi, "volume %d on UBI device %d is corrupted",
367 vol->vol_id, ubi->ubi_num);
371 ubi_volume_notify(ubi, vol, UBI_VOLUME_UPDATED);
384 struct ubi_device *ubi = vol->ubi;
420 err = ubi_start_update(ubi, vol, bytes);
422 ubi_volume_notify(ubi, vol, UBI_VOLUME_UPDATED);
456 err = ubi_start_leb_change(ubi, vol, &req);
485 err = ubi_eba_unmap_leb(ubi, vol, lnum);
489 err = ubi_wl_flush(ubi, UBI_ALL, UBI_ALL);
548 mutex_lock(&ubi->device_mutex);
550 mutex_unlock(&ubi->device_mutex);
588 * @ubi: UBI device description object
593 static int verify_mkvol_req(const struct ubi_device *ubi,
602 if ((req->vol_id < 0 || req->vol_id >= ubi->vtbl_slots) &&
623 if (req->alignment > ubi->leb_size)
626 n = req->alignment & (ubi->min_io_size - 1);
645 ubi_err(ubi, "bad volume creation request");
652 * @ubi: UBI device description object
657 static int verify_rsvol_req(const struct ubi_device *ubi,
663 if (req->vol_id < 0 || req->vol_id >= ubi->vtbl_slots)
671 * @ubi: UBI device description object
679 static int rename_volumes(struct ubi_device *ubi,
695 req->ents[i].vol_id >= ubi->vtbl_slots)
711 ubi_err(ubi, "duplicated volume id %d",
716 ubi_err(ubi, "duplicated volume name \"%s\"",
736 re->desc = ubi_open_volume(ubi->ubi_num, vol_id, UBI_METAONLY);
739 ubi_err(ubi, "cannot open volume %d, error %d",
790 desc = ubi_open_volume_nm(ubi->ubi_num, re->new_name,
799 ubi_err(ubi, "cannot open volume \"%s\", error %d",
818 mutex_lock(&ubi->device_mutex);
819 err = ubi_rename_volumes(ubi, &rename_list);
820 mutex_unlock(&ubi->device_mutex);
831 static int ubi_get_ec_info(struct ubi_device *ubi, struct ubi_ecinfo_req __user *ureq)
844 if (req.length <= 0 || req.start < 0 || req.start >= ubi->peb_count)
850 if (end_peb > ubi->peb_count)
851 end_peb = ubi->peb_count;
863 if (ubi_io_is_bad(ubi, peb)) {
870 spin_lock(&ubi->wl_lock);
872 wl = ubi->lookuptbl[peb];
878 spin_unlock(&ubi->wl_lock);
899 struct ubi_device *ubi;
906 ubi = ubi_get_by_major(imajor(file->f_mapping->host));
907 if (!ubi)
923 err = verify_mkvol_req(ubi, &req);
927 mutex_lock(&ubi->device_mutex);
928 err = ubi_create_volume(ubi, &req);
929 mutex_unlock(&ubi->device_mutex);
952 desc = ubi_open_volume(ubi->ubi_num, vol_id, UBI_EXCLUSIVE);
958 mutex_lock(&ubi->device_mutex);
960 mutex_unlock(&ubi->device_mutex);
984 err = verify_rsvol_req(ubi, &req);
988 desc = ubi_open_volume(ubi->ubi_num, req.vol_id, UBI_EXCLUSIVE);
997 mutex_lock(&ubi->device_mutex);
999 mutex_unlock(&ubi->device_mutex);
1023 err = rename_volumes(ubi, req);
1039 err = ubi_bitflip_check(ubi, pnum, 0);
1054 err = ubi_bitflip_check(ubi, pnum, 1);
1060 err = ubi_get_ec_info(ubi, argp);
1069 ubi_put_device(ubi);