ssize_t (*read)(struct file *, char __user *, size_t, loff_t *);
        ssize_t n;
 
-       read = file->f_dentry->d_inode->i_fop->read;
+       read = file->f_path.dentry->d_inode->i_fop->read;
 
        if(!is_user)
                set_fs(KERNEL_DS);
        ssize_t (*write)(struct file *, const char __user *, size_t, loff_t *);
        int err;
 
-       write = proc_file->f_dentry->d_inode->i_fop->write;
+       write = proc_file->f_path.dentry->d_inode->i_fop->write;
 
        proc_file->f_pos = file->f_pos;
        err = (*write)(proc_file, buf, len, &proc_file->f_pos);
        if(data == NULL)
                goto out;
 
-       host_file = dentry_name(file->f_dentry, strlen("/rw"));
+       host_file = dentry_name(file->f_path.dentry, strlen("/rw"));
        if(host_file == NULL)
                goto out_free2;
 
        loff_t (*llseek)(struct file *, loff_t, int);
        loff_t ret;
 
-       llseek = proc_file->f_dentry->d_inode->i_fop->llseek;
+       llseek = proc_file->f_path.dentry->d_inode->i_fop->llseek;
        if(llseek != NULL){
                ret = (*llseek)(proc_file, off, where);
                if(ret < 0)
        struct hppfs_dirent dirent = ((struct hppfs_dirent)
                                      { .vfs_dirent     = ent,
                                        .filldir        = filldir,
-                                       .dentry         = file->f_dentry } );
+                                       .dentry         = file->f_path.dentry } );
        int err;
 
-       readdir = proc_file->f_dentry->d_inode->i_fop->readdir;
+       readdir = proc_file->f_path.dentry->d_inode->i_fop->readdir;
 
        proc_file->f_pos = file->f_pos;
        err = (*readdir)(proc_file, &dirent, hppfs_filldir);