[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [tyndur-devel] [PATCH] LostIO: Fix fuer Race-Condition beim Anlegen von neuen Knoten
On Wed, Dec 09, 2009 at 07:52:07PM +0100, Antoine Kaufmann wrote:
> ! 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.
In derselben Datei fehlt zumindest in vfstree_get_node_by_name und
vfstree_clear_node noch jeweils ein p/v bei Listenzugriffen.
Aber der Teil, der da ist, sieht vernünftig aus.
>
> 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
>
> _______________________________________________
> tyndur-devel mailing list
> tyndur-devel@xxxxxxxxxx
> http://list.tyndur.org/mailman/listinfo/tyndur-devel