Lines Matching defs:bn
59 #define for_each_xbitmap_extent(bn, bitmap) \
60 for ((bn) = rb_entry_safe(rb_first(&(bitmap)->xb_root.rb_root), \
62 (bn) != NULL; \
63 (bn) = rb_entry_safe(rb_next(&(bn)->bn_rbnode), \
73 struct xbitmap_node *bn;
77 while ((bn = xbitmap_tree_iter_first(&bitmap->xb_root, start, last))) {
78 if (bn->bn_start < start && bn->bn_last > last) {
79 uint64_t old_last = bn->bn_last;
82 xbitmap_tree_remove(bn, &bitmap->xb_root);
83 bn->bn_last = start - 1;
84 xbitmap_tree_insert(bn, &bitmap->xb_root);
94 } else if (bn->bn_start < start) {
96 xbitmap_tree_remove(bn, &bitmap->xb_root);
97 bn->bn_last = start - 1;
98 xbitmap_tree_insert(bn, &bitmap->xb_root);
99 } else if (bn->bn_last > last) {
101 xbitmap_tree_remove(bn, &bitmap->xb_root);
102 bn->bn_start = last + 1;
103 xbitmap_tree_insert(bn, &bitmap->xb_root);
107 xbitmap_tree_remove(bn, &bitmap->xb_root);
108 kfree(bn);
180 struct xbitmap_node *bn;
182 while ((bn = xbitmap_tree_iter_first(&bitmap->xb_root, 0, -1ULL))) {
183 xbitmap_tree_remove(bn, &bitmap->xb_root);
184 kfree(bn);
215 struct xbitmap_node *bn;
221 for_each_xbitmap_extent(bn, sub) {
222 error = xbitmap_clear(bitmap, bn->bn_start,
223 bn->bn_last - bn->bn_start + 1);
325 struct xbitmap_node *bn;
328 for_each_xbitmap_extent(bn, bitmap)
329 ret += bn->bn_last - bn->bn_start + 1;
341 struct xbitmap_node *bn;
344 for_each_xbitmap_extent(bn, bitmap) {
345 error = fn(bn->bn_start, bn->bn_last - bn->bn_start + 1, priv);
368 struct xbitmap_node *bn;
371 bn = xbitmap_tree_iter_first(&bitmap->xb_root, start, last);
372 if (!bn)
374 if (bn->bn_start <= start) {
375 if (bn->bn_last < last)
376 *len = bn->bn_last - start + 1;
379 *len = bn->bn_start - start;