Browse code

Fixing child emancipation from parents when removing hierarchies via ddd.

Mickey Sola authored on 2015/09/01 02:21:58
Showing 1 changed files
... ...
@@ -442,7 +442,7 @@ int onas_add_listnode(struct onas_lnode *tail, struct onas_lnode *node) {
442 442
 	struct onas_lnode *tmp = tail->prev;
443 443
 
444 444
 	tmp->next = node;
445
-	node->prev = tmp->prev;
445
+	node->prev = tail->prev;
446 446
 
447 447
 	node->next = tail;
448 448
 	tail->prev = node;
... ...
@@ -514,7 +514,7 @@ int onas_ht_rm_child(struct onas_ht *ht, const char *prntpath, size_t prntlen, c
514 514
 
515 515
 	if(idx <= 0) return CL_SUCCESS;
516 516
 
517
-	if(onas_ht_get(ht, prntpath, prntlen, &elem)) return CL_EARG;
517
+	if(onas_ht_get(ht, prntpath, prntlen, &elem) != CL_SUCCESS) return CL_EARG;
518 518
 	hnode = elem->data;
519 519
 
520 520
 	return onas_rm_listnode(hnode->childhead, &(childpath[idx]));
... ...
@@ -618,7 +618,7 @@ int onas_ht_rm_hierarchy(struct onas_ht *ht, const char* pathname, size_t len, i
618 618
 
619 619
 	if(level == 0) {
620 620
 		if(!(prntname = onas_get_parent(pathname, len))) return CL_EARG;
621
-		prntlen = sizeof(prntname);
621
+		prntlen = strlen(prntname);
622 622
 		onas_ht_rm_child(ht, prntname, prntlen, pathname, len);
623 623
 		free(prntname);
624 624
 	}