Lines Matching refs:le

217 		struct ubi_ltree_entry *le;
219 le = rb_entry(p, struct ubi_ltree_entry, rb);
221 if (vol_id < le->vol_id)
223 else if (vol_id > le->vol_id)
226 if (lnum < le->lnum)
228 else if (lnum > le->lnum)
231 return le;
252 struct ubi_ltree_entry *le, *le1, *le_free;
254 le = kmalloc(sizeof(struct ubi_ltree_entry), GFP_NOFS);
255 if (!le)
258 le->users = 0;
259 init_rwsem(&le->mutex);
260 le->vol_id = vol_id;
261 le->lnum = lnum;
271 le_free = le;
272 le = le1;
300 rb_link_node(&le->rb, parent, p);
301 rb_insert_color(&le->rb, &ubi->ltree);
303 le->users += 1;
307 return le;
321 struct ubi_ltree_entry *le;
323 le = ltree_add_entry(ubi, vol_id, lnum);
324 if (IS_ERR(le))
325 return PTR_ERR(le);
326 down_read(&le->mutex);
338 struct ubi_ltree_entry *le;
341 le = ltree_lookup(ubi, vol_id, lnum);
342 le->users -= 1;
343 ubi_assert(le->users >= 0);
344 up_read(&le->mutex);
345 if (le->users == 0) {
346 rb_erase(&le->rb, &ubi->ltree);
347 kfree(le);
363 struct ubi_ltree_entry *le;
365 le = ltree_add_entry(ubi, vol_id, lnum);
366 if (IS_ERR(le))
367 return PTR_ERR(le);
368 down_write(&le->mutex);
385 struct ubi_ltree_entry *le;
387 le = ltree_add_entry(ubi, vol_id, lnum);
388 if (IS_ERR(le))
389 return PTR_ERR(le);
390 if (down_write_trylock(&le->mutex))
395 le->users -= 1;
396 ubi_assert(le->users >= 0);
397 if (le->users == 0) {
398 rb_erase(&le->rb, &ubi->ltree);
399 kfree(le);
414 struct ubi_ltree_entry *le;
417 le = ltree_lookup(ubi, vol_id, lnum);
418 le->users -= 1;
419 ubi_assert(le->users >= 0);
420 up_write(&le->mutex);
421 if (le->users == 0) {
422 rb_erase(&le->rb, &ubi->ltree);
423 kfree(le);