mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-26 05:15:31 +00:00 
			
		
		
		
	 34ec12349c
			
		
	
	
		34ec12349c
		
	
	
	
	
		
			
			Allocate ->signal->stats on demand in taskstats_exit(), this allows us to remove taskstats_tgid_alloc() (the last non-trivial inline) from taskstat's public interface. Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Cc: Balbir Singh <balbir@in.ibm.com> Cc: Shailabh Nagar <nagar@watson.ibm.com> Cc: Jay Lan <jlan@engr.sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* taskstats_kern.h - kernel header for per-task statistics interface
 | |
|  *
 | |
|  * Copyright (C) Shailabh Nagar, IBM Corp. 2006
 | |
|  *           (C) Balbir Singh,   IBM Corp. 2006
 | |
|  */
 | |
| 
 | |
| #ifndef _LINUX_TASKSTATS_KERN_H
 | |
| #define _LINUX_TASKSTATS_KERN_H
 | |
| 
 | |
| #include <linux/taskstats.h>
 | |
| #include <linux/sched.h>
 | |
| #include <net/genetlink.h>
 | |
| 
 | |
| #ifdef CONFIG_TASKSTATS
 | |
| extern struct kmem_cache *taskstats_cache;
 | |
| extern struct mutex taskstats_exit_mutex;
 | |
| 
 | |
| static inline void taskstats_tgid_init(struct signal_struct *sig)
 | |
| {
 | |
| 	sig->stats = NULL;
 | |
| }
 | |
| 
 | |
| static inline void taskstats_tgid_free(struct signal_struct *sig)
 | |
| {
 | |
| 	if (sig->stats)
 | |
| 		kmem_cache_free(taskstats_cache, sig->stats);
 | |
| }
 | |
| 
 | |
| extern void taskstats_exit(struct task_struct *, int group_dead);
 | |
| extern void taskstats_init_early(void);
 | |
| #else
 | |
| static inline void taskstats_exit(struct task_struct *tsk, int group_dead)
 | |
| {}
 | |
| static inline void taskstats_tgid_init(struct signal_struct *sig)
 | |
| {}
 | |
| static inline void taskstats_tgid_free(struct signal_struct *sig)
 | |
| {}
 | |
| static inline void taskstats_init_early(void)
 | |
| {}
 | |
| #endif /* CONFIG_TASKSTATS */
 | |
| 
 | |
| #endif
 | |
| 
 |