forked from Minki/linux
perf tools: Import rb_erase_init from block/ in the kernel sources
I was assuming rb_erase() was setting things up like list_del_init, but the fact that thread__delete() was being sucessfull is because the last thing before deleting is to remove the thread from the machine->dead_threads list, using list_del_init(), that has the same effect as using rb_erase_init()... Introduce this function so that we can use it when removing objects from rb_trees. Then we will be able to BUG_ON(still on a list) in destructors. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Borislav Petkov <bp@suse.de> Cc: David Ahern <dsahern@gmail.com> Cc: Don Zickus <dzickus@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-55b16mbtndjyd7zzg8nmnamx@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
f7e365eb61
commit
9402e23f90
@ -1,2 +1,16 @@
|
||||
#ifndef __TOOLS_LINUX_PERF_RBTREE_H
|
||||
#define __TOOLS_LINUX_PERF_RBTREE_H
|
||||
#include <stdbool.h>
|
||||
#include "../../../../include/linux/rbtree.h"
|
||||
|
||||
/*
|
||||
* Handy for checking that we are not deleting an entry that is
|
||||
* already in a list, found in block/{blk-throttle,cfq-iosched}.c,
|
||||
* probably should be moved to lib/rbtree.c...
|
||||
*/
|
||||
static inline void rb_erase_init(struct rb_node *n, struct rb_root *root)
|
||||
{
|
||||
rb_erase(n, root);
|
||||
RB_CLEAR_NODE(n);
|
||||
}
|
||||
#endif /* __TOOLS_LINUX_PERF_RBTREE_H */
|
||||
|
Loading…
Reference in New Issue
Block a user