Lines Matching refs:gluebi

81 	struct gluebi_device *gluebi;  in find_gluebi_nolock()  local
83 list_for_each_entry(gluebi, &gluebi_devices, list) in find_gluebi_nolock()
84 if (gluebi->ubi_num == ubi_num && gluebi->vol_id == vol_id) in find_gluebi_nolock()
85 return gluebi; in find_gluebi_nolock()
99 struct gluebi_device *gluebi; in gluebi_get_device() local
108 gluebi = container_of(mtd, struct gluebi_device, mtd); in gluebi_get_device()
110 if (gluebi->refcnt > 0) { in gluebi_get_device()
119 gluebi->refcnt += 1; in gluebi_get_device()
128 gluebi->desc = ubi_open_volume(gluebi->ubi_num, gluebi->vol_id, in gluebi_get_device()
130 if (IS_ERR(gluebi->desc)) { in gluebi_get_device()
133 return PTR_ERR(gluebi->desc); in gluebi_get_device()
135 gluebi->refcnt += 1; in gluebi_get_device()
149 struct gluebi_device *gluebi; in gluebi_put_device() local
151 gluebi = container_of(mtd, struct gluebi_device, mtd); in gluebi_put_device()
153 gluebi->refcnt -= 1; in gluebi_put_device()
154 if (gluebi->refcnt == 0) in gluebi_put_device()
155 ubi_close_volume(gluebi->desc); in gluebi_put_device()
175 struct gluebi_device *gluebi; in gluebi_read() local
177 gluebi = container_of(mtd, struct gluebi_device, mtd); in gluebi_read()
186 err = ubi_read(gluebi->desc, lnum, buf, offs, to_read); in gluebi_read()
215 struct gluebi_device *gluebi; in gluebi_write() local
217 gluebi = container_of(mtd, struct gluebi_device, mtd); in gluebi_write()
230 err = ubi_leb_write(gluebi->desc, lnum, buf, offs, to_write); in gluebi_write()
255 struct gluebi_device *gluebi; in gluebi_erase() local
262 gluebi = container_of(mtd, struct gluebi_device, mtd); in gluebi_erase()
265 err = ubi_leb_unmap(gluebi->desc, lnum + i); in gluebi_erase()
276 err = ubi_leb_erase(gluebi->desc, lnum + i); in gluebi_erase()
302 struct gluebi_device *gluebi, *g; in gluebi_create() local
305 gluebi = kzalloc(sizeof(struct gluebi_device), GFP_KERNEL); in gluebi_create()
306 if (!gluebi) in gluebi_create()
309 mtd = &gluebi->mtd; in gluebi_create()
312 kfree(gluebi); in gluebi_create()
316 gluebi->vol_id = vi->vol_id; in gluebi_create()
317 gluebi->ubi_num = vi->ubi_num; in gluebi_create()
351 kfree(gluebi); in gluebi_create()
356 list_add_tail(&gluebi->list, &gluebi_devices); in gluebi_create()
373 struct gluebi_device *gluebi; in gluebi_remove() local
376 gluebi = find_gluebi_nolock(vi->ubi_num, vi->vol_id); in gluebi_remove()
377 if (!gluebi) { in gluebi_remove()
381 } else if (gluebi->refcnt) in gluebi_remove()
384 list_del(&gluebi->list); in gluebi_remove()
389 mtd = &gluebi->mtd; in gluebi_remove()
393 mtd->index, gluebi->ubi_num, gluebi->vol_id, err); in gluebi_remove()
395 list_add_tail(&gluebi->list, &gluebi_devices); in gluebi_remove()
401 kfree(gluebi); in gluebi_remove()
417 struct gluebi_device *gluebi; in gluebi_updated() local
420 gluebi = find_gluebi_nolock(vi->ubi_num, vi->vol_id); in gluebi_updated()
421 if (!gluebi) { in gluebi_updated()
429 gluebi->mtd.size = vi->used_bytes; in gluebi_updated()
444 struct gluebi_device *gluebi; in gluebi_resized() local
447 gluebi = find_gluebi_nolock(vi->ubi_num, vi->vol_id); in gluebi_resized()
448 if (!gluebi) { in gluebi_resized()
454 gluebi->mtd.size = vi->used_bytes; in gluebi_resized()
500 struct gluebi_device *gluebi, *g; in ubi_gluebi_exit() local
502 list_for_each_entry_safe(gluebi, g, &gluebi_devices, list) { in ubi_gluebi_exit()
504 struct mtd_info *mtd = &gluebi->mtd; in ubi_gluebi_exit()
509 err, mtd->index, gluebi->ubi_num, in ubi_gluebi_exit()
510 gluebi->vol_id); in ubi_gluebi_exit()
512 kfree(gluebi); in ubi_gluebi_exit()