X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=fs%2Fproc%2Finode.c;h=00f08b3d0dffe54596647272d1cc34ee48ed937d;hb=f7c3ff94a296f2daf8f5f2e8be3e459636c3fdfd;hp=7737c5468a4088f507165230884ba30b605713ea;hpb=6a6662ced4153f6dbcfc40d7225c3cc45416039c;p=pandora-kernel.git diff --git a/fs/proc/inode.c b/fs/proc/inode.c index 7737c5468a40..00f08b3d0dff 100644 --- a/fs/proc/inode.c +++ b/fs/proc/inode.c @@ -427,12 +427,10 @@ static const struct file_operations proc_reg_file_ops_no_compat = { struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de) { - struct inode * inode; + struct inode *inode = new_inode_pseudo(sb); - inode = iget_locked(sb, de->low_ino); - if (!inode) - return NULL; - if (inode->i_state & I_NEW) { + if (inode) { + inode->i_ino = de->low_ino; inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; PROC_I(inode)->fd = 0; PROC_I(inode)->pde = de; @@ -461,9 +459,7 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de) inode->i_fop = de->proc_fops; } } - unlock_new_inode(inode); - } else - pde_put(de); + } return inode; }