projects
/
linux-2.6-microblaze.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
module.h: simplify MODULE_IMPORT_NS
[linux-2.6-microblaze.git]
/
lib
/
xarray.c
diff --git
a/lib/xarray.c
b/lib/xarray.c
index
b95e925
..
4acc88e
100644
(file)
--- a/
lib/xarray.c
+++ b/
lib/xarray.c
@@
-722,6
+722,8
@@
void xas_create_range(struct xa_state *xas)
for (;;) {
struct xa_node *node = xas->xa_node;
for (;;) {
struct xa_node *node = xas->xa_node;
+ if (node->shift >= shift)
+ break;
xas->xa_node = xa_parent_locked(xas->xa, node);
xas->xa_offset = node->offset - 1;
if (node->offset != 0)
xas->xa_node = xa_parent_locked(xas->xa, node);
xas->xa_offset = node->offset - 1;
if (node->offset != 0)
@@
-1079,6
+1081,7
@@
void xas_split(struct xa_state *xas, void *entry, unsigned int order)
xa_mk_node(child));
if (xa_is_value(curr))
values--;
xa_mk_node(child));
if (xa_is_value(curr))
values--;
+ xas_update(xas, child);
} else {
unsigned int canon = offset - xas->xa_sibs;
} else {
unsigned int canon = offset - xas->xa_sibs;
@@
-1093,6
+1096,7
@@
void xas_split(struct xa_state *xas, void *entry, unsigned int order)
} while (offset-- > xas->xa_offset);
node->nr_values += values;
} while (offset-- > xas->xa_offset);
node->nr_values += values;
+ xas_update(xas, node);
}
EXPORT_SYMBOL_GPL(xas_split);
#endif
}
EXPORT_SYMBOL_GPL(xas_split);
#endif