Lines Matching refs:le
123 struct ltree_entry *le;
125 le = rb_entry(p, struct ltree_entry, rb);
127 if (vol_id < le->vol_id)
129 else if (vol_id > le->vol_id)
132 if (lnum < le->lnum)
134 else if (lnum > le->lnum)
137 return le;
158 struct ltree_entry *le, *le1, *le_free;
160 le = kmem_cache_alloc(ltree_slab, GFP_KERNEL);
161 if (!le)
164 le->vol_id = vol_id;
165 le->lnum = lnum;
175 le_free = le;
176 le = le1;
204 rb_link_node(&le->rb, parent, p);
205 rb_insert_color(&le->rb, &ubi->ltree);
207 le->users += 1;
213 return le;
227 struct ltree_entry *le;
229 le = ltree_add_entry(ubi, vol_id, lnum);
230 if (IS_ERR(le))
231 return PTR_ERR(le);
232 down_read(&le->mutex);
245 struct ltree_entry *le;
248 le = ltree_lookup(ubi, vol_id, lnum);
249 le->users -= 1;
250 ubi_assert(le->users >= 0);
251 if (le->users == 0) {
252 rb_erase(&le->rb, &ubi->ltree);
257 up_read(&le->mutex);
259 kmem_cache_free(ltree_slab, le);
273 struct ltree_entry *le;
275 le = ltree_add_entry(ubi, vol_id, lnum);
276 if (IS_ERR(le))
277 return PTR_ERR(le);
278 down_write(&le->mutex);
291 struct ltree_entry *le;
294 le = ltree_lookup(ubi, vol_id, lnum);
295 le->users -= 1;
296 ubi_assert(le->users >= 0);
297 if (le->users == 0) {
298 rb_erase(&le->rb, &ubi->ltree);
304 up_write(&le->mutex);
306 kmem_cache_free(ltree_slab, le);
933 struct ltree_entry *le = obj;
935 le->users = 0;
936 init_rwsem(&le->mutex);