diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2006-06-26 00:25:40 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-26 09:58:23 -0700 |
commit | 5634708b5fce807bdf2091cfafc2fb24d791f0c8 (patch) | |
tree | dc383be7cd284c9364d90147bdea981b3d9cb5d4 /fs | |
parent | f05e15b59467d97c30fbffed80db9e00b73d640b (diff) | |
download | blackbird-op-linux-5634708b5fce807bdf2091cfafc2fb24d791f0c8.tar.gz blackbird-op-linux-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.c | 5 |
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++; |