Lines Matching refs:vol
67 void ubi_do_get_volume_info(struct ubi_device *ubi, struct ubi_volume *vol, in ubi_do_get_volume_info() argument
70 vi->vol_id = vol->vol_id; in ubi_do_get_volume_info()
72 vi->size = vol->reserved_pebs; in ubi_do_get_volume_info()
73 vi->used_bytes = vol->used_bytes; in ubi_do_get_volume_info()
74 vi->vol_type = vol->vol_type; in ubi_do_get_volume_info()
75 vi->corrupted = vol->corrupted; in ubi_do_get_volume_info()
76 vi->upd_marker = vol->upd_marker; in ubi_do_get_volume_info()
77 vi->alignment = vol->alignment; in ubi_do_get_volume_info()
78 vi->usable_leb_size = vol->usable_leb_size; in ubi_do_get_volume_info()
79 vi->name_len = vol->name_len; in ubi_do_get_volume_info()
80 vi->name = vol->name; in ubi_do_get_volume_info()
81 vi->cdev = vol->cdev.dev; in ubi_do_get_volume_info()
82 vi->dev = &vol->dev; in ubi_do_get_volume_info()
93 ubi_do_get_volume_info(desc->vol->ubi, desc->vol, vi); in ubi_get_volume_info()
120 struct ubi_volume *vol; in ubi_open_volume() local
154 vol = ubi->volumes[vol_id]; in ubi_open_volume()
155 if (!vol || vol->is_dead) in ubi_open_volume()
161 if (vol->exclusive) in ubi_open_volume()
163 vol->readers += 1; in ubi_open_volume()
167 if (vol->exclusive || vol->writers > 0) in ubi_open_volume()
169 vol->writers += 1; in ubi_open_volume()
173 if (vol->exclusive || vol->writers || vol->readers || in ubi_open_volume()
174 vol->metaonly) in ubi_open_volume()
176 vol->exclusive = 1; in ubi_open_volume()
180 if (vol->metaonly || vol->exclusive) in ubi_open_volume()
182 vol->metaonly = 1; in ubi_open_volume()
185 get_device(&vol->dev); in ubi_open_volume()
186 vol->ref_count += 1; in ubi_open_volume()
189 desc->vol = vol; in ubi_open_volume()
193 if (!vol->checked && !vol->skip_check) { in ubi_open_volume()
204 vol->corrupted = 1; in ubi_open_volume()
206 vol->checked = 1; in ubi_open_volume()
259 struct ubi_volume *vol = ubi->volumes[i]; in ubi_open_volume_nm() local
261 if (vol && len == vol->name_len && !strcmp(name, vol->name)) { in ubi_open_volume_nm()
348 struct ubi_volume *vol = desc->vol; in ubi_close_volume() local
349 struct ubi_device *ubi = vol->ubi; in ubi_close_volume()
352 ubi->ubi_num, vol->vol_id, desc->mode); in ubi_close_volume()
357 vol->readers -= 1; in ubi_close_volume()
360 vol->writers -= 1; in ubi_close_volume()
363 vol->exclusive = 0; in ubi_close_volume()
366 vol->metaonly = 0; in ubi_close_volume()
369 vol->ref_count -= 1; in ubi_close_volume()
373 put_device(&vol->dev); in ubi_close_volume()
392 struct ubi_volume *vol = desc->vol; in leb_read_sanity_check() local
393 struct ubi_device *ubi = vol->ubi; in leb_read_sanity_check()
394 int vol_id = vol->vol_id; in leb_read_sanity_check()
397 lnum >= vol->used_ebs || offset < 0 || len < 0 || in leb_read_sanity_check()
398 offset + len > vol->usable_leb_size) in leb_read_sanity_check()
401 if (vol->vol_type == UBI_STATIC_VOLUME) { in leb_read_sanity_check()
402 if (vol->used_ebs == 0) in leb_read_sanity_check()
405 if (lnum == vol->used_ebs - 1 && in leb_read_sanity_check()
406 offset + len > vol->last_eb_bytes) in leb_read_sanity_check()
410 if (vol->upd_marker) in leb_read_sanity_check()
446 struct ubi_volume *vol = desc->vol; in ubi_leb_read() local
447 struct ubi_device *ubi = vol->ubi; in ubi_leb_read()
448 int err, vol_id = vol->vol_id; in ubi_leb_read()
459 err = ubi_eba_read_leb(ubi, vol, lnum, buf, offset, len, check); in ubi_leb_read()
460 if (err && mtd_is_eccerr(err) && vol->vol_type == UBI_STATIC_VOLUME) { in ubi_leb_read()
462 vol->corrupted = 1; in ubi_leb_read()
486 struct ubi_volume *vol = desc->vol; in ubi_leb_read_sg() local
487 struct ubi_device *ubi = vol->ubi; in ubi_leb_read_sg()
488 int err, vol_id = vol->vol_id; in ubi_leb_read_sg()
499 err = ubi_eba_read_leb_sg(ubi, vol, sgl, lnum, offset, len, check); in ubi_leb_read_sg()
500 if (err && mtd_is_eccerr(err) && vol->vol_type == UBI_STATIC_VOLUME) { in ubi_leb_read_sg()
502 vol->corrupted = 1; in ubi_leb_read_sg()
537 struct ubi_volume *vol = desc->vol; in ubi_leb_write() local
538 struct ubi_device *ubi = vol->ubi; in ubi_leb_write()
539 int vol_id = vol->vol_id; in ubi_leb_write()
546 if (desc->mode == UBI_READONLY || vol->vol_type == UBI_STATIC_VOLUME) in ubi_leb_write()
549 if (!ubi_leb_valid(vol, lnum) || offset < 0 || len < 0 || in ubi_leb_write()
550 offset + len > vol->usable_leb_size || in ubi_leb_write()
554 if (vol->upd_marker) in ubi_leb_write()
560 return ubi_eba_write_leb(ubi, vol, lnum, buf, offset, len); in ubi_leb_write()
582 struct ubi_volume *vol = desc->vol; in ubi_leb_change() local
583 struct ubi_device *ubi = vol->ubi; in ubi_leb_change()
584 int vol_id = vol->vol_id; in ubi_leb_change()
591 if (desc->mode == UBI_READONLY || vol->vol_type == UBI_STATIC_VOLUME) in ubi_leb_change()
594 if (!ubi_leb_valid(vol, lnum) || len < 0 || in ubi_leb_change()
595 len > vol->usable_leb_size || len & (ubi->min_io_size - 1)) in ubi_leb_change()
598 if (vol->upd_marker) in ubi_leb_change()
604 return ubi_eba_atomic_leb_change(ubi, vol, lnum, buf, len); in ubi_leb_change()
622 struct ubi_volume *vol = desc->vol; in ubi_leb_erase() local
623 struct ubi_device *ubi = vol->ubi; in ubi_leb_erase()
626 dbg_gen("erase LEB %d:%d", vol->vol_id, lnum); in ubi_leb_erase()
628 if (desc->mode == UBI_READONLY || vol->vol_type == UBI_STATIC_VOLUME) in ubi_leb_erase()
631 if (!ubi_leb_valid(vol, lnum)) in ubi_leb_erase()
634 if (vol->upd_marker) in ubi_leb_erase()
637 err = ubi_eba_unmap_leb(ubi, vol, lnum); in ubi_leb_erase()
641 return ubi_wl_flush(ubi, vol->vol_id, lnum); in ubi_leb_erase()
683 struct ubi_volume *vol = desc->vol; in ubi_leb_unmap() local
684 struct ubi_device *ubi = vol->ubi; in ubi_leb_unmap()
686 dbg_gen("unmap LEB %d:%d", vol->vol_id, lnum); in ubi_leb_unmap()
688 if (desc->mode == UBI_READONLY || vol->vol_type == UBI_STATIC_VOLUME) in ubi_leb_unmap()
691 if (!ubi_leb_valid(vol, lnum)) in ubi_leb_unmap()
694 if (vol->upd_marker) in ubi_leb_unmap()
697 return ubi_eba_unmap_leb(ubi, vol, lnum); in ubi_leb_unmap()
719 struct ubi_volume *vol = desc->vol; in ubi_leb_map() local
720 struct ubi_device *ubi = vol->ubi; in ubi_leb_map()
722 dbg_gen("map LEB %d:%d", vol->vol_id, lnum); in ubi_leb_map()
724 if (desc->mode == UBI_READONLY || vol->vol_type == UBI_STATIC_VOLUME) in ubi_leb_map()
727 if (!ubi_leb_valid(vol, lnum)) in ubi_leb_map()
730 if (vol->upd_marker) in ubi_leb_map()
733 if (ubi_eba_is_mapped(vol, lnum)) in ubi_leb_map()
736 return ubi_eba_write_leb(ubi, vol, lnum, NULL, 0, 0); in ubi_leb_map()
758 struct ubi_volume *vol = desc->vol; in ubi_is_mapped() local
760 dbg_gen("test LEB %d:%d", vol->vol_id, lnum); in ubi_is_mapped()
762 if (!ubi_leb_valid(vol, lnum)) in ubi_is_mapped()
765 if (vol->upd_marker) in ubi_is_mapped()
768 return ubi_eba_is_mapped(vol, lnum); in ubi_is_mapped()