cluster-table: fix incorrect b-tree node initialisation

This commit is contained in:
2025-06-23 13:27:11 +01:00
parent 34ab04fe4e
commit f65bd32bcf

View File

@@ -17,11 +17,11 @@ static const size_t nr_cluster_sizes
static int node_init(struct ec3_cluster_group *n)
{
memset(n, 0x0, sizeof *n);
for (int i = 0; i < EC3_CLUSTERS_PER_GROUP + 1; i++) {
n->g_child_offsets[i] = b_i32_htob(EC3_INVALID_OFFSET);
}
memset(&n->g_nr_clusters, 0x0, sizeof n->g_nr_clusters);
memset(n->g_reserved, 0x0, sizeof n->g_reserved);
memset(n->g_clusters, 0x0, sizeof n->g_clusters);
memset(n->g_child_offsets, 0xFF, sizeof n->g_child_offsets);
memset(n->g_padding, 0x0, sizeof n->g_padding);
return 0;
}
@@ -97,6 +97,12 @@ static long tree_alloc_node(struct b_tree *p)
return (long)len;
}
static void __node_init(struct b_tree *tree, b_tree_node *n)
{
struct ec3_cluster_group *node = (struct ec3_cluster_group *)n;
node_init(node);
}
static unsigned long node_get_nr_entries(struct b_tree *tree, b_tree_node *n)
{
struct ec3_cluster_group *node = (struct ec3_cluster_group *)n;
@@ -190,6 +196,7 @@ static const struct b_tree_ops cluster_table_ops = {
.tree_put_node = tree_put_node,
.tree_alloc_node = tree_alloc_node,
.node_init = __node_init,
.node_get_nr_entries = node_get_nr_entries,
.node_set_nr_entries = node_set_nr_entries,
.node_get_entry = node_get_entry,