Lines Matching refs:e
167 static inline bool rb_insert_count(struct rb_root *root, struct e_node *e) in rb_insert_count() argument
171 size_t e_ckey = e->count.key; in rb_insert_count()
172 size_t e_skey = e->start.key; in rb_insert_count()
192 rb_link_node(&e->count.node, parent, p); in rb_insert_count()
193 rb_insert_color(&e->count.node, root); in rb_insert_count()
200 static inline bool rb_insert_start(struct rb_root *root, struct e_node *e) in rb_insert_start() argument
204 size_t e_skey = e->start.key; in rb_insert_start()
222 rb_link_node(&e->start.node, parent, p); in rb_insert_start()
223 rb_insert_color(&e->start.node, root); in rb_insert_start()
234 struct e_node *e, *e0 = NULL; in wnd_add_free_ext() local
252 e = rb_entry(n, struct e_node, start.node); in wnd_add_free_ext()
254 if (e->start.key + e->count.key == bit) { in wnd_add_free_ext()
256 bit = e->start.key; in wnd_add_free_ext()
257 len += e->count.key; in wnd_add_free_ext()
258 rb_erase(&e->start.node, &wnd->start_tree); in wnd_add_free_ext()
259 rb_erase(&e->count.node, &wnd->count_tree); in wnd_add_free_ext()
261 e0 = e; in wnd_add_free_ext()
268 e = rb_entry(n, struct e_node, start.node); in wnd_add_free_ext()
269 next_end = e->start.key + e->count.key; in wnd_add_free_ext()
270 if (e->start.key > end_in) in wnd_add_free_ext()
277 rb_erase(&e->start.node, &wnd->start_tree); in wnd_add_free_ext()
278 rb_erase(&e->count.node, &wnd->count_tree); in wnd_add_free_ext()
282 e0 = e; in wnd_add_free_ext()
284 kmem_cache_free(ntfs_enode_cachep, e); in wnd_add_free_ext()
320 e = rb_entry(n, struct e_node, count.node); in wnd_add_free_ext()
321 if (len <= e->count.key) in wnd_add_free_ext()
334 rb_erase(&e->start.node, &wnd->start_tree); in wnd_add_free_ext()
335 rb_erase(&e->count.node, &wnd->count_tree); in wnd_add_free_ext()
338 e = e0 ? e0 : kmem_cache_alloc(ntfs_enode_cachep, GFP_ATOMIC); in wnd_add_free_ext()
339 if (!e) { in wnd_add_free_ext()
347 e->start.key = bit; in wnd_add_free_ext()
348 e->count.key = len; in wnd_add_free_ext()
352 rb_insert_start(&wnd->start_tree, e); in wnd_add_free_ext()
353 rb_insert_count(&wnd->count_tree, e); in wnd_add_free_ext()
365 struct e_node *e, *e3; in wnd_remove_free_ext() local
375 e = rb_entry(n, struct e_node, start.node); in wnd_remove_free_ext()
376 end = e->start.key + e->count.key; in wnd_remove_free_ext()
379 len = e->count.key; in wnd_remove_free_ext()
382 if (e->start.key > bit) in wnd_remove_free_ext()
388 len = bit - e->start.key; in wnd_remove_free_ext()
426 if (e->count.key != wnd->extent_max) { in wnd_remove_free_ext()
428 } else if (rb_prev(&e->count.node)) { in wnd_remove_free_ext()
431 n3 = rb_next(&e->count.node); in wnd_remove_free_ext()
443 e->start.key = new_key; in wnd_remove_free_ext()
444 rb_erase(&e->count.node, &wnd->count_tree); in wnd_remove_free_ext()
445 e->count.key = new_len; in wnd_remove_free_ext()
446 rb_insert_count(&wnd->count_tree, e); in wnd_remove_free_ext()
448 rb_erase(&e->start.node, &wnd->start_tree); in wnd_remove_free_ext()
449 rb_erase(&e->count.node, &wnd->count_tree); in wnd_remove_free_ext()
451 kmem_cache_free(ntfs_enode_cachep, e); in wnd_remove_free_ext()
455 rb_erase(&e->count.node, &wnd->count_tree); in wnd_remove_free_ext()
456 e->count.key = len; in wnd_remove_free_ext()
457 rb_insert_count(&wnd->count_tree, e); in wnd_remove_free_ext()
466 e = rb_entry(rb_last(&wnd->count_tree), struct e_node, in wnd_remove_free_ext()
468 if (e->count.key > new_len) in wnd_remove_free_ext()
472 rb_erase(&e->start.node, &wnd->start_tree); in wnd_remove_free_ext()
473 rb_erase(&e->count.node, &wnd->count_tree); in wnd_remove_free_ext()
476 e = kmem_cache_alloc(ntfs_enode_cachep, GFP_ATOMIC); in wnd_remove_free_ext()
477 if (!e) in wnd_remove_free_ext()
481 if (e) { in wnd_remove_free_ext()
482 e->start.key = new_key; in wnd_remove_free_ext()
483 e->count.key = new_len; in wnd_remove_free_ext()
484 rb_insert_start(&wnd->start_tree, e); in wnd_remove_free_ext()
485 rb_insert_count(&wnd->count_tree, e); in wnd_remove_free_ext()
875 struct e_node *e; in wnd_is_free() local
884 e = rb_entry(n, struct e_node, start.node); in wnd_is_free()
886 end = e->start.key + e->count.key; in wnd_is_free()
912 struct e_node *e; in wnd_is_used() local
922 e = rb_entry(n, struct e_node, start.node); in wnd_is_used()
923 if (e->start.key + e->count.key > bit) in wnd_is_used()
967 const struct e_node *e; in wnd_find() local
1005 e = NULL; in wnd_find()
1014 e = rb_entry(cr, struct e_node, start.node); in wnd_find()
1016 if (e->start.key == hint) in wnd_find()
1019 if (e->start.key < hint) { in wnd_find()
1029 e = pr ? rb_entry(pr, struct e_node, start.node) : NULL; in wnd_find()
1034 if (!e) in wnd_find()
1037 if (e->start.key + e->count.key > hint) { in wnd_find()
1039 size_t len = e->start.key + e->count.key - hint; in wnd_find()
1060 e = rb_entry(rb_first(&wnd->count_tree), struct e_node, count.node); in wnd_find()
1061 if (e->count.key != wnd->extent_max) in wnd_find()
1062 wnd->extent_max = e->count.key; in wnd_find()
1064 if (e->count.key < max_alloc) { in wnd_find()
1065 if (e->count.key >= to_alloc) { in wnd_find()
1068 if (e->count.key < to_alloc0) { in wnd_find()
1072 to_alloc = e->count.key; in wnd_find()
1074 to_alloc = e->count.key; in wnd_find()
1084 max_check = e->start.key + to_alloc; in wnd_find()
1087 for (op = e->start.key + e->count.key; op < max_check; in wnd_find()
1094 to_alloc = op - e->start.key; in wnd_find()
1098 fnd = e->start.key; in wnd_find()
1099 if (e->start.key + to_alloc > max_alloc) in wnd_find()
1100 to_alloc = max_alloc - e->start.key; in wnd_find()
1109 b_len = e->count.key; in wnd_find()
1110 b_pos = e->start.key; in wnd_find()