Commit 817b13fa authored by Pavel Emelyanov's avatar Pavel Emelyanov

kcmp: Make ID generation code return ID, not pointer on tree element

Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 46aeebdb
...@@ -163,7 +163,7 @@ err: ...@@ -163,7 +163,7 @@ err:
return e; return e;
} }
static struct kid_entry *kid_generate_sub(struct kid_tree *tree, struct kid_entry *e, static u32 kid_generate_sub(struct kid_tree *tree, struct kid_entry *e,
struct kid_elem *elem, int *new_id) struct kid_elem *elem, int *new_id)
{ {
struct rb_node *node = e->subtree_root.rb_node; struct rb_node *node = e->subtree_root.rb_node;
...@@ -185,19 +185,19 @@ static struct kid_entry *kid_generate_sub(struct kid_tree *tree, struct kid_entr ...@@ -185,19 +185,19 @@ static struct kid_entry *kid_generate_sub(struct kid_tree *tree, struct kid_entr
else if (ret > 0) else if (ret > 0)
node = node->rb_right, new = &((*new)->rb_right); node = node->rb_right, new = &((*new)->rb_right);
else else
return this; return this->subid;
} }
sub = alloc_kid_entry(tree, elem); sub = alloc_kid_entry(tree, elem);
if (!sub) if (!sub)
return NULL; return 0;
rb_link_and_balance(&e->subtree_root, &sub->subtree_node, parent, new); rb_link_and_balance(&e->subtree_root, &sub->subtree_node, parent, new);
*new_id = 1; *new_id = 1;
return sub; return sub->subid;
} }
static struct kid_entry *kid_generate_gen(struct kid_tree *tree, static u32 kid_generate_gen(struct kid_tree *tree,
struct kid_elem *elem, int *new_id) struct kid_elem *elem, int *new_id)
{ {
struct rb_node *node = tree->root.rb_node; struct rb_node *node = tree->root.rb_node;
...@@ -220,11 +220,11 @@ static struct kid_entry *kid_generate_gen(struct kid_tree *tree, ...@@ -220,11 +220,11 @@ static struct kid_entry *kid_generate_gen(struct kid_tree *tree,
e = alloc_kid_entry(tree, elem); e = alloc_kid_entry(tree, elem);
if (!e) if (!e)
return NULL; return 0;
rb_link_and_balance(&tree->root, &e->node, parent, new); rb_link_and_balance(&tree->root, &e->node, parent, new);
*new_id = 1; *new_id = 1;
return e; return e->subid;
} }
...@@ -235,7 +235,7 @@ u32 fd_id_generate_special(void) ...@@ -235,7 +235,7 @@ u32 fd_id_generate_special(void)
int fd_id_generate(pid_t pid, struct fdinfo_entry *fe) int fd_id_generate(pid_t pid, struct fdinfo_entry *fe)
{ {
struct kid_entry *fid; u32 id;
struct kid_elem e; struct kid_elem e;
int new_id = 0; int new_id = 0;
...@@ -243,10 +243,10 @@ int fd_id_generate(pid_t pid, struct fdinfo_entry *fe) ...@@ -243,10 +243,10 @@ int fd_id_generate(pid_t pid, struct fdinfo_entry *fe)
e.genid = fe->id; e.genid = fe->id;
e.idx = fe->fd; e.idx = fe->fd;
fid = kid_generate_gen(&fd_tree, &e, &new_id); id = kid_generate_gen(&fd_tree, &e, &new_id);
if (!fid) if (!id)
return -ENOMEM; return -ENOMEM;
fe->id = fid->subid; fe->id = id;
return new_id; return new_id;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment