X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Ffile_table.c;fp=fs%2Ffile_table.c;h=cc11ccb83a5e34beac86a7e32e22befd3d310d56;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=4a90726243762d9ecad9977c2492e65900566d23;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/fs/file_table.c b/fs/file_table.c index 4a9072624..cc11ccb83 100644 --- a/fs/file_table.c +++ b/fs/file_table.c @@ -5,6 +5,7 @@ * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) */ +#include #include #include #include @@ -89,7 +90,6 @@ int proc_nr_files(ctl_table *table, int write, struct file *filp, */ struct file *get_empty_filp(void) { - struct task_struct *tsk; static int old_max; struct file * f; @@ -114,14 +114,13 @@ struct file *get_empty_filp(void) if (security_file_alloc(f)) goto fail_sec; - tsk = current; - INIT_LIST_HEAD(&f->f_u.fu_list); + eventpoll_init_file(f); atomic_set(&f->f_count, 1); + f->f_uid = current->fsuid; + f->f_gid = current->fsgid; rwlock_init(&f->f_owner.lock); - f->f_uid = tsk->fsuid; - f->f_gid = tsk->fsgid; - eventpoll_init_file(f); /* f->f_version: 0 */ + INIT_LIST_HEAD(&f->f_u.fu_list); f->f_xid = vx_current_xid(); vx_files_inc(f); return f; @@ -173,7 +172,7 @@ void fastcall __fput(struct file *file) if (file->f_op && file->f_op->release) file->f_op->release(inode, file); security_file_free(file); - if (unlikely(S_ISCHR(inode->i_mode) && inode->i_cdev != NULL)) + if (unlikely(inode->i_cdev != NULL)) cdev_put(inode->i_cdev); fops_put(file->f_op); if (file->f_mode & FMODE_WRITE) @@ -240,7 +239,6 @@ struct file fastcall *fget_light(unsigned int fd, int *fput_needed) return file; } -EXPORT_SYMBOL_GPL(fget_light); void put_filp(struct file *file) { @@ -308,5 +306,5 @@ void __init files_init(unsigned long mempages) if (files_stat.max_files < NR_FILE) files_stat.max_files = NR_FILE; files_defer_init(); - percpu_counter_init(&nr_files, 0); + percpu_counter_init(&nr_files); }