Lines Matching +full:3 +full:br
104 struct xbitmap_range *br; in xbitmap_disunion() local
131 br = list_entry(lp, struct xbitmap_range, list); in xbitmap_disunion()
134 * Advance sub_br and/or br until we find a pair that in xbitmap_disunion()
137 while (sub_br->start + sub_br->len <= br->start) { in xbitmap_disunion()
142 if (sub_br->start >= br->start + br->len) { in xbitmap_disunion()
150 if (sub_br->start < br->start) { in xbitmap_disunion()
151 sub_len -= br->start - sub_br->start; in xbitmap_disunion()
152 sub_start = br->start; in xbitmap_disunion()
154 if (sub_len > br->len) in xbitmap_disunion()
155 sub_len = br->len; in xbitmap_disunion()
158 if (sub_start == br->start) in xbitmap_disunion()
160 if (sub_start + sub_len == br->start + br->len) in xbitmap_disunion()
165 br->start += sub_len; in xbitmap_disunion()
166 br->len -= sub_len; in xbitmap_disunion()
170 br->len -= sub_len; in xbitmap_disunion()
176 list_del(&br->list); in xbitmap_disunion()
177 kmem_free(br); in xbitmap_disunion()
192 new_br->len = br->start + br->len - new_br->start; in xbitmap_disunion()
193 list_add(&new_br->list, &br->list); in xbitmap_disunion()
194 br->len = sub_start - br->start; in xbitmap_disunion()
222 * 1 2 3
238 * For the 201st record, we've moved on to leaf block 3. bc_ptrs[0] == 1, so
239 * we add 3 to the list. Now it is [1, 4, 2, 3].
241 * For the 300th record we just exit, with the list being [1, 4, 2, 3].