[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tyndur-devel] [PATCH] LostIO: Fix fuer Race-Condition beim Anlegen von neuen Knoten
! LostIO: Fix fuer Race-Condition beim Anlegen von neuen Knoten. Dabei
wurde der Knoten erst nach dem Eintragen beim Vater-Knoten als
Kind fertig initialisiert. Weiter hat da auch ein p/v()
gefehlt.
Signed-off-by: Antoine Kaufmann <toni@xxxxxxxxxx>
---
src/modules/lib/lostio/vfstree.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/modules/lib/lostio/vfstree.c b/src/modules/lib/lostio/vfstree.c
index 9463847..96f09bf 100644
--- a/src/modules/lib/lostio/vfstree.c
+++ b/src/modules/lib/lostio/vfstree.c
@@ -217,8 +217,6 @@ bool vfstree_create_child(vfstree_node_t* parent, char* name, typeid_t type, siz
{
vfstree_node_t* new_file = malloc(sizeof(vfstree_node_t));
- parent->children = list_push((list_t*)parent->children, (void*) new_file);
- parent->size++;
new_file->type = type;
new_file->name = malloc(strlen(name) + 1);
@@ -228,9 +226,15 @@ bool vfstree_create_child(vfstree_node_t* parent, char* name, typeid_t type, siz
new_file->data = data;
new_file->flags = flags;
- new_file->resid = next_resid++;
new_file->children = list_create();
new_file->parent = parent;
+
+ p();
+ new_file->resid = next_resid++;
+ parent->children = list_push((list_t*)parent->children, (void*) new_file);
+ parent->size++;
+ v();
+
return TRUE;
}
--
1.6.3.3