]> err.no Git - linux-2.6/commitdiff
[PATCH] proc: Fix the .. inode number on /proc/<pid>/fd
authorEric W. Biederman <ebiederm@xmission.com>
Mon, 26 Jun 2006 07:25:40 +0000 (00:25 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 26 Jun 2006 16:58:23 +0000 (09:58 -0700)
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>
fs/proc/base.c

index c4a1ff371b8d608ec612036d58198481c120f210..13e3ab99eb746711817f5e15fc9216b0bc35c699 100644 (file)
@@ -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++;