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) static int node_init(struct ec3_cluster_group *n)
{ {
memset(n, 0x0, sizeof *n); memset(&n->g_nr_clusters, 0x0, sizeof n->g_nr_clusters);
memset(n->g_reserved, 0x0, sizeof n->g_reserved);
for (int i = 0; i < EC3_CLUSTERS_PER_GROUP + 1; i++) { memset(n->g_clusters, 0x0, sizeof n->g_clusters);
n->g_child_offsets[i] = b_i32_htob(EC3_INVALID_OFFSET); memset(n->g_child_offsets, 0xFF, sizeof n->g_child_offsets);
} memset(n->g_padding, 0x0, sizeof n->g_padding);
return 0; return 0;
} }
@@ -97,6 +97,12 @@ static long tree_alloc_node(struct b_tree *p)
return (long)len; 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) 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; 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_put_node = tree_put_node,
.tree_alloc_node = tree_alloc_node, .tree_alloc_node = tree_alloc_node,
.node_init = __node_init,
.node_get_nr_entries = node_get_nr_entries, .node_get_nr_entries = node_get_nr_entries,
.node_set_nr_entries = node_set_nr_entries, .node_set_nr_entries = node_set_nr_entries,
.node_get_entry = node_get_entry, .node_get_entry = node_get_entry,