diff options
Diffstat (limited to 'fs/proc/inode.c')
| -rw-r--r-- | fs/proc/inode.c | 6 | 
1 files changed, 3 insertions, 3 deletions
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;  |