File tree Expand file tree Collapse file tree 1 file changed +12
-8
lines changed Expand file tree Collapse file tree 1 file changed +12
-8
lines changed Original file line number Diff line number Diff line change @@ -125,16 +125,20 @@ static inline void node_mark_all(struct xa_node *node, xa_mark_t mark)
125
125
*/
126
126
static void xas_squash_marks (const struct xa_state * xas )
127
127
{
128
- unsigned int mark = 0 ;
128
+ xa_mark_t mark = 0 ;
129
129
unsigned int limit = xas -> xa_offset + xas -> xa_sibs + 1 ;
130
130
131
- do {
132
- unsigned long * marks = xas -> xa_node -> marks [mark ];
133
- if (find_next_bit (marks , limit , xas -> xa_offset + 1 ) == limit )
134
- continue ;
135
- __set_bit (xas -> xa_offset , marks );
136
- bitmap_clear (marks , xas -> xa_offset + 1 , xas -> xa_sibs );
137
- } while (mark ++ != (__force unsigned )XA_MARK_MAX );
131
+ for (;;) {
132
+ unsigned long * marks = node_marks (xas -> xa_node , mark );
133
+
134
+ if (find_next_bit (marks , limit , xas -> xa_offset + 1 ) != limit ) {
135
+ __set_bit (xas -> xa_offset , marks );
136
+ bitmap_clear (marks , xas -> xa_offset + 1 , xas -> xa_sibs );
137
+ }
138
+ if (mark == XA_MARK_MAX )
139
+ break ;
140
+ mark_inc (mark );
141
+ }
138
142
}
139
143
140
144
/* extracts the offset within this node from the index */
You can’t perform that action at this time.
0 commit comments