X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=fs%2Fproc%2Finode.c;h=869116c2afbe4d192bee231541d141b8622cd6e3;hb=844fdd9ac1cdd756f5bd233f302ecabb27dd387a;hp=a86aebc9ba7c252bbfa73907612b59c177fca202;hpb=43b18db8a27fcd28c2bd290adf031ca04ea573ce;p=cascardo%2Flinux.git diff --git a/fs/proc/inode.c b/fs/proc/inode.c index a86aebc9ba7c..869116c2afbe 100644 --- a/fs/proc/inode.c +++ b/fs/proc/inode.c @@ -446,9 +446,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 = iget_locked(sb, de->low_ino); + struct inode *inode = new_inode_pseudo(sb); - if (inode && (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)->pde = de; @@ -476,7 +477,6 @@ 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;