X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Ffile_table.c;h=4a90726243762d9ecad9977c2492e65900566d23;hb=16c70f8c1b54b61c3b951b6fb220df250fe09b32;hp=889491defc43fa65af9f33182e466c1c02a46b52;hpb=43bc926fffd92024b46cafaf7350d669ba9ca884;p=linux-2.6.git diff --git a/fs/file_table.c b/fs/file_table.c index 889491def..4a9072624 100644 --- a/fs/file_table.c +++ b/fs/file_table.c @@ -5,7 +5,6 @@ * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) */ -#include #include #include #include @@ -174,7 +173,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(inode->i_cdev != NULL)) + if (unlikely(S_ISCHR(inode->i_mode) && inode->i_cdev != NULL)) cdev_put(inode->i_cdev); fops_put(file->f_op); if (file->f_mode & FMODE_WRITE) @@ -241,6 +240,7 @@ 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 +308,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); + percpu_counter_init(&nr_files, 0); }