X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=include%2Flinux%2Fdelayacct.h;h=561e2a77805c582fdebcd3d588a222d8adec9a6c;hb=12cbbd95e12e911b43afae7f6f4850f616223642;hp=11487b6e7127ff68ec12cada74c672af72efcffb;hpb=0a7d5f8ce960e74fa22986bda4af488539796e49;p=powerpc.git diff --git a/include/linux/delayacct.h b/include/linux/delayacct.h index 11487b6e71..561e2a7780 100644 --- a/include/linux/delayacct.h +++ b/include/linux/delayacct.h @@ -59,10 +59,14 @@ static inline void delayacct_tsk_init(struct task_struct *tsk) __delayacct_tsk_init(tsk); } -static inline void delayacct_tsk_exit(struct task_struct *tsk) +/* Free tsk->delays. Called from bad fork and __put_task_struct + * where there's no risk of tsk->delays being accessed elsewhere + */ +static inline void delayacct_tsk_free(struct task_struct *tsk) { if (tsk->delays) - __delayacct_tsk_exit(tsk); + kmem_cache_free(delayacct_cache, tsk->delays); + tsk->delays = NULL; } static inline void delayacct_blkio_start(void) @@ -101,7 +105,7 @@ static inline void delayacct_init(void) {} static inline void delayacct_tsk_init(struct task_struct *tsk) {} -static inline void delayacct_tsk_exit(struct task_struct *tsk) +static inline void delayacct_tsk_free(struct task_struct *tsk) {} static inline void delayacct_blkio_start(void) {}