Lines Matching refs:le

218 		struct ubi_ltree_entry *le;
220 le = rb_entry(p, struct ubi_ltree_entry, rb);
222 if (vol_id < le->vol_id)
224 else if (vol_id > le->vol_id)
227 if (lnum < le->lnum)
229 else if (lnum > le->lnum)
232 return le;
253 struct ubi_ltree_entry *le, *le1, *le_free;
255 le = kmalloc(sizeof(struct ubi_ltree_entry), GFP_NOFS);
256 if (!le)
259 le->users = 0;
260 init_rwsem(&le->mutex);
261 le->vol_id = vol_id;
262 le->lnum = lnum;
272 le_free = le;
273 le = le1;
301 rb_link_node(&le->rb, parent, p);
302 rb_insert_color(&le->rb, &ubi->ltree);
304 le->users += 1;
308 return le;
322 struct ubi_ltree_entry *le;
324 le = ltree_add_entry(ubi, vol_id, lnum);
325 if (IS_ERR(le))
326 return PTR_ERR(le);
327 down_read(&le->mutex);
339 struct ubi_ltree_entry *le;
342 le = ltree_lookup(ubi, vol_id, lnum);
343 le->users -= 1;
344 ubi_assert(le->users >= 0);
345 up_read(&le->mutex);
346 if (le->users == 0) {
347 rb_erase(&le->rb, &ubi->ltree);
348 kfree(le);
364 struct ubi_ltree_entry *le;
366 le = ltree_add_entry(ubi, vol_id, lnum);
367 if (IS_ERR(le))
368 return PTR_ERR(le);
369 down_write(&le->mutex);
386 struct ubi_ltree_entry *le;
388 le = ltree_add_entry(ubi, vol_id, lnum);
389 if (IS_ERR(le))
390 return PTR_ERR(le);
391 if (down_write_trylock(&le->mutex))
396 le->users -= 1;
397 ubi_assert(le->users >= 0);
398 if (le->users == 0) {
399 rb_erase(&le->rb, &ubi->ltree);
400 kfree(le);
415 struct ubi_ltree_entry *le;
418 le = ltree_lookup(ubi, vol_id, lnum);
419 le->users -= 1;
420 ubi_assert(le->users >= 0);
421 up_write(&le->mutex);
422 if (le->users == 0) {
423 rb_erase(&le->rb, &ubi->ltree);
424 kfree(le);