Lines Matching refs:bn

61 #define for_each_xbitmap64_extent(bn, bitmap) \
62 for ((bn) = rb_entry_safe(rb_first(&(bitmap)->xb_root.rb_root), \
64 (bn) != NULL; \
65 (bn) = rb_entry_safe(rb_next(&(bn)->bn_rbnode), \
75 struct xbitmap64_node *bn;
79 while ((bn = xbitmap64_tree_iter_first(&bitmap->xb_root, start, last))) {
80 if (bn->bn_start < start && bn->bn_last > last) {
81 uint64_t old_last = bn->bn_last;
84 xbitmap64_tree_remove(bn, &bitmap->xb_root);
85 bn->bn_last = start - 1;
86 xbitmap64_tree_insert(bn, &bitmap->xb_root);
96 } else if (bn->bn_start < start) {
98 xbitmap64_tree_remove(bn, &bitmap->xb_root);
99 bn->bn_last = start - 1;
100 xbitmap64_tree_insert(bn, &bitmap->xb_root);
101 } else if (bn->bn_last > last) {
103 xbitmap64_tree_remove(bn, &bitmap->xb_root);
104 bn->bn_start = last + 1;
105 xbitmap64_tree_insert(bn, &bitmap->xb_root);
109 xbitmap64_tree_remove(bn, &bitmap->xb_root);
110 kfree(bn);
182 struct xbitmap64_node *bn;
184 while ((bn = xbitmap64_tree_iter_first(&bitmap->xb_root, 0, -1ULL))) {
185 xbitmap64_tree_remove(bn, &bitmap->xb_root);
186 kfree(bn);
217 struct xbitmap64_node *bn;
223 for_each_xbitmap64_extent(bn, sub) {
224 error = xbitmap64_clear(bitmap, bn->bn_start,
225 bn->bn_last - bn->bn_start + 1);
238 struct xbitmap64_node *bn;
241 for_each_xbitmap64_extent(bn, bitmap)
242 ret += bn->bn_last - bn->bn_start + 1;
254 struct xbitmap64_node *bn;
257 for_each_xbitmap64_extent(bn, bitmap) {
258 error = fn(bn->bn_start, bn->bn_last - bn->bn_start + 1, priv);
281 struct xbitmap64_node *bn;
284 bn = xbitmap64_tree_iter_first(&bitmap->xb_root, start, last);
285 if (!bn)
287 if (bn->bn_start <= start) {
288 if (bn->bn_last < last)
289 *len = bn->bn_last - start + 1;
292 *len = bn->bn_start - start;
335 #define for_each_xbitmap32_extent(bn, bitmap) \
336 for ((bn) = rb_entry_safe(rb_first(&(bitmap)->xb_root.rb_root), \
338 (bn) != NULL; \
339 (bn) = rb_entry_safe(rb_next(&(bn)->bn_rbnode), \
349 struct xbitmap32_node *bn;
353 while ((bn = xbitmap32_tree_iter_first(&bitmap->xb_root, start, last))) {
354 if (bn->bn_start < start && bn->bn_last > last) {
355 uint32_t old_last = bn->bn_last;
358 xbitmap32_tree_remove(bn, &bitmap->xb_root);
359 bn->bn_last = start - 1;
360 xbitmap32_tree_insert(bn, &bitmap->xb_root);
370 } else if (bn->bn_start < start) {
372 xbitmap32_tree_remove(bn, &bitmap->xb_root);
373 bn->bn_last = start - 1;
374 xbitmap32_tree_insert(bn, &bitmap->xb_root);
375 } else if (bn->bn_last > last) {
377 xbitmap32_tree_remove(bn, &bitmap->xb_root);
378 bn->bn_start = last + 1;
379 xbitmap32_tree_insert(bn, &bitmap->xb_root);
383 xbitmap32_tree_remove(bn, &bitmap->xb_root);
384 kfree(bn);
456 struct xbitmap32_node *bn;
458 while ((bn = xbitmap32_tree_iter_first(&bitmap->xb_root, 0, -1U))) {
459 xbitmap32_tree_remove(bn, &bitmap->xb_root);
460 kfree(bn);
491 struct xbitmap32_node *bn;
497 for_each_xbitmap32_extent(bn, sub) {
498 error = xbitmap32_clear(bitmap, bn->bn_start,
499 bn->bn_last - bn->bn_start + 1);
512 struct xbitmap32_node *bn;
515 for_each_xbitmap32_extent(bn, bitmap)
516 ret += bn->bn_last - bn->bn_start + 1;
528 struct xbitmap32_node *bn;
531 for_each_xbitmap32_extent(bn, bitmap) {
532 error = fn(bn->bn_start, bn->bn_last - bn->bn_start + 1, priv);
555 struct xbitmap32_node *bn;
558 bn = xbitmap32_tree_iter_first(&bitmap->xb_root, start, last);
559 if (!bn)
561 if (bn->bn_start <= start) {
562 if (bn->bn_last < last)
563 *len = bn->bn_last - start + 1;
566 *len = bn->bn_start - start;
575 struct xbitmap32_node *bn;
578 for_each_xbitmap32_extent(bn, bitmap)