X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=fs%2Fproc%2Finode.c;h=d8bb5c671f420a83c17c740425e6f71f9d85799e;hb=4f3bff70a64b105921dac8630bc4381567b21ebd;hp=2543fd00c6589cc8218169f16b0214de9c063f81;hpb=4d9c6a21befe6c73c35f2799c7e25a9eda82a95d;p=karo-tx-linux.git diff --git a/fs/proc/inode.c b/fs/proc/inode.c index 2543fd00c658..d8bb5c671f42 100644 --- a/fs/proc/inode.c +++ b/fs/proc/inode.c @@ -35,16 +35,13 @@ struct proc_dir_entry *de_get(struct proc_dir_entry *de) */ void de_put(struct proc_dir_entry *de) { - lock_kernel(); if (!atomic_read(&de->count)) { printk("de_put: entry %s already free!\n", de->name); - unlock_kernel(); return; } if (atomic_dec_and_test(&de->count)) free_proc_entry(de); - unlock_kernel(); } /* @@ -488,8 +485,10 @@ struct inode *proc_get_inode(struct super_block *sb, unsigned int ino, } } unlock_new_inode(inode); - } else + } else { module_put(de->owner); + de_put(de); + } return inode; out_ino: