inline fput_light() 25-akpm/fs/file_table.c | 9 +-------- 25-akpm/include/linux/file.h | 8 +++++++- 2 files changed, 8 insertions(+), 9 deletions(-) diff -puN fs/file_table.c~fget-speedup-inline-fput_light fs/file_table.c --- 25/fs/file_table.c~fget-speedup-inline-fput_light Fri May 2 14:00:15 2003 +++ 25-akpm/fs/file_table.c Fri May 2 14:00:15 2003 @@ -141,19 +141,12 @@ void close_private_file(struct file *fil security_file_free(file); } -void fput(struct file * file) +void fput(struct file *file) { if (atomic_dec_and_test(&file->f_count)) __fput(file); } -void fput_light(struct file * file, int fput_needed) -{ - if (unlikely(fput_needed)) - if (atomic_dec_and_test(&file->f_count)) - __fput(file); -} - /* __fput is called from task context when aio completion releases the last * last use of a struct file *. Do not use otherwise. */ diff -puN include/linux/file.h~fget-speedup-inline-fput_light include/linux/file.h --- 25/include/linux/file.h~fget-speedup-inline-fput_light Fri May 2 14:00:15 2003 +++ 25-akpm/include/linux/file.h Fri May 2 14:00:15 2003 @@ -35,7 +35,13 @@ struct files_struct { extern void FASTCALL(__fput(struct file *)); extern void FASTCALL(fput(struct file *)); -extern void FASTCALL(fput_light(struct file *, int)); + +static inline void fput_light(struct file *file, int fput_needed) +{ + if (unlikely(fput_needed)) + fput(file); +} + extern struct file * FASTCALL(fget(unsigned int fd)); extern struct file * FASTCALL(fget_light(unsigned int fd, int *fput_needed)); extern void FASTCALL(set_close_on_exec(unsigned int fd, int flag)); _