summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2006-06-26 00:25:40 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-26 09:58:23 -0700
commit5634708b5fce807bdf2091cfafc2fb24d791f0c8 (patch)
treedc383be7cd284c9364d90147bdea981b3d9cb5d4 /fs
parentf05e15b59467d97c30fbffed80db9e00b73d640b (diff)
downloadlinux-stable-5634708b5fce807bdf2091cfafc2fb24d791f0c8.tar.gz
linux-stable-5634708b5fce807bdf2091cfafc2fb24d791f0c8.tar.bz2
linux-stable-5634708b5fce807bdf2091cfafc2fb24d791f0c8.zip
[PATCH] proc: Fix the .. inode number on /proc/<pid>/fd
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/proc/base.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/proc/base.c b/fs/proc/base.c
index c4a1ff371b8d..13e3ab99eb74 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -1196,7 +1196,8 @@ static struct inode_operations proc_pid_link_inode_operations = {
static int proc_readfd(struct file * filp, void * dirent, filldir_t filldir)
{
- struct inode *inode = filp->f_dentry->d_inode;
+ struct dentry *dentry = filp->f_dentry;
+ struct inode *inode = dentry->d_inode;
struct task_struct *p = proc_task(inode);
unsigned int fd, tid, ino;
int retval;
@@ -1217,7 +1218,7 @@ static int proc_readfd(struct file * filp, void * dirent, filldir_t filldir)
goto out;
filp->f_pos++;
case 1:
- ino = fake_ino(tid, PROC_TID_INO);
+ ino = parent_ino(dentry);
if (filldir(dirent, "..", 2, 1, ino, DT_DIR) < 0)
goto out;
filp->f_pos++;