struct task_struct *task = proc_task(inode);
        struct files_struct *files;
        struct file *file;
-       int fd = proc_type(inode) - PROC_TID_FD_DIR;
+       int fd = proc_fd(inode);
 
        files = get_files_struct(task);
        if (files) {
         */
        get_task_struct(task);
        ei->task = task;
-       ei->type = ino;
        inode->i_uid = 0;
        inode->i_gid = 0;
        if (task_dumpable(task)) {
 {
        struct inode *inode = dentry->d_inode;
        struct task_struct *task = proc_task(inode);
-       int fd = proc_type(inode) - PROC_TID_FD_DIR;
+       int fd = proc_fd(inode);
        struct files_struct *files;
 
        files = get_files_struct(task);
        if (!inode)
                goto out;
        ei = PROC_I(inode);
+       ei->fd = fd;
        files = get_files_struct(task);
        if (!files)
                goto out_unlock;
 
        return PROC_I(inode)->task;
 }
 
-static inline int proc_type(struct inode *inode)
+static inline int proc_fd(struct inode *inode)
 {
-       return PROC_I(inode)->type;
+       return PROC_I(inode)->fd;
 }
 
 
 struct proc_inode {
        struct task_struct *task;
-       int type;
+       int fd;
        union {
                int (*proc_get_link)(struct inode *, struct dentry **, struct vfsmount **);
                int (*proc_read)(struct task_struct *task, char *page);