[WATCHDOG] MIPS RM9000 on-chip watchdog device - patch 4
[sfrench/cifs-2.6.git] / fs / file_table.c
index bcea1998b4de48b56fed18334159c34b2559d6c5..24f25a057d9c131f94f1f2eb2400739958d09a95 100644 (file)
@@ -5,7 +5,6 @@
  *  Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu)
  */
 
-#include <linux/config.h>
 #include <linux/string.h>
 #include <linux/slab.h>
 #include <linux/file.h>
@@ -170,11 +169,12 @@ 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)
                put_write_access(inode);
+       put_pid(file->f_owner.pid);
        file_kill(file);
        file->f_dentry = NULL;
        file->f_vfsmnt = NULL;
@@ -300,5 +300,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);
 }