summaryrefslogtreecommitdiffstats
path: root/fs/proc/inode.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-04-01 20:46:45 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-04-01 20:46:45 +0200
commitb43f9b59e65e1d4ff06474885b44515817868fdd (patch)
tree0de0ca983a6624b0582034154da4d17a170caf1e /fs/proc/inode.c
parentstaging: sync: Add compat_ioctl handlers to sync drivers (diff)
parentLinux 3.9-rc5 (diff)
downloadlinux-b43f9b59e65e1d4ff06474885b44515817868fdd.tar.xz
linux-b43f9b59e65e1d4ff06474885b44515817868fdd.zip
Merge 3.9-rc5 into staging-next
This pulls in all of the good fixes we need here. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/proc/inode.c')
-rw-r--r--fs/proc/inode.c6
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;