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 changed files with 14 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue