At this point it would at least be nice to receive any kind of communication from Parallels about this issue. Even if they don't have a fix they should release something saying whether or not they are trying to fix it. Give us something guys!!!
I'm trying to set up Kubuntu 15.04 with 3.19.05 kernel and I'm seeing the same "no member named f_dentry" compiler failure. Just bought Parallels and find this frustrating. Some kind of work around would be appreciated.
Hi All, Our developers are aware of this issue and they are working on the fix. We will update in this Forum thread once a fix is available for this issue. You can also subscribe to Parallels Update summary ( http://kb.parallels.com/122720 ) to track the changes.
@Maheesh@Parallels thanks for the response. Since Ubuntu releases happen every six months may I request the Parallels team to plan ahead of every release?
I just tried to install the tools in 15.04 and ran into problems. I can upload my parallels-tools-install.log file if it would help.....
I know that they're working on it, but I wanted to chime in with a "me too!" so that they know more folks are waiting.
Is there any estimate on the time for this fix? I am stuck with a non-functioning VM right now, so if a solution is too long in the future, I would like to know, so that I can make an alternative VM to use for the time being...
We are now weeks after release and still no update. Parallels just doesn't fit with my upgrade policy, even though it is pretty. I think this is the last release I am going to suffer through Parallel's long support lag. I'll give vmware a try next and just fallback to virtualbox if that doesn't work out for any reason.
They have had 3 months to fix the two issues causing this so far (since the breaking xorg and kernel releases), and at least a month since I notified them. I wouldn't rely on it being quick unfortunately. I have recommended a continuous integration system to them which would test new xorg and kernel releases automatically as the become available. Hopefully they will implement something similar in the future. With Windows 10 moving to a rolling release I don't think they have much choice to support that too. It became extremely urgent for me, stopping me from doing part of my day job so I have ditched Parallels for now. I recommend at least using VirtualBox as a stop-gap if what you are doing is time-critical.
+1 Wow, this is a pretty disappointing. Bad that it broke, worse it's taken so long to get a fix. I only just got around to upgrading to 15.04, however had I known Parallels had this issue (and failed to resolve it quickly) I'd have thought twice. Will give it a short while, but if not fixed then I'm sure it'll work fine on something like virtual box and that'll be the end (for good) of my Parallels subscription. Can't be waiting this long for basic functionality. Come on, seriously?
I'm also waiting for this fix. I am also waiting for another fix that I already reported to Parallels but would like to know if other users experience the same problem. On Linux virtual machines I get file corruptions when I save any file from the virtual machine to the Parallels Shared Folders. This doesn't happen on Windows virtual machines. Does anyone experience the same problem?
Just tried installing Ubuntu 15.04 and experiencing the same problems as others have noted. Seems like the install script is failing due to change in file system pointer structure.
- April 1 was the first alert that Parallel Tools couldn't be installed on Ubuntu 15.04. - May 1 Parallels Support announced they were working on the fix. - Today is May 13 and still no news. Is it so difficult to this company to solve?
Stupid me I got into login loop under 14.10 and could not resolve it so after login to console I thought an updata might be good idea. Now I am stuck with almost useless GUI, fortunatley TERM still works but good by Eclipse. @parallels guys, when it will be fixed ?! I paid for your product, you know.
I got this working eventually. This is an ugly hack, mostly since I didn't want to spend time to understand how the installation really works. So, what I did what this: - First, I made a copy of the tools directory from the mounted cd (so it is writable): cp -r /media/staffanu/Parallels\ Tools ~/ParallelTools (of course the source path needs to be adjusted) - Then, I made this change to installer/install-kmod: --- "/media/staffanu/Parallels Tools/installer/install-kmods.sh"2015-03-26 20:45:13.000000000 +0100 +++ "/home/staffanu/ParallelsTools/Parallels Tools/installer/install-kmods.sh"2015-05-17 19:40:17.887660461 +0200 @@ -218,7 +218,7 @@ if [ $make_flag -eq 0 ]; then # Unpack kernel module sources tar -xzf "$KMOD_DIR/$PRL_MOD.$TGZEXT" -C "$KMOD_DIR" - +kill -STOP $$ # Build kernel module make -C "$KMOD_DIR" -f Makefile.kmods result=$? This makes the installer stop after extracting the sources in /usr/lib/parallels-tools/kmods. We can now patch the sources before sending a CONT signal to the installer. The patches I had to make were these: diff -ru "/home/staffanu/ParallelsTools/Parallels Tools/orig/prl_fs/SharedFolders/Guest/Linux/prl_fs/file.c" /usr/lib/parallels-tools/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/file.c --- "/home/staffanu/ParallelsTools/Parallels Tools/orig/prl_fs/SharedFolders/Guest/Linux/prl_fs/file.c"2015-03-03 11:43:20.000000000 +0100 +++ /usr/lib/parallels-tools/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/file.c2015-05-17 20:47:26.944950203 +0200 @@ -19,7 +19,7 @@ char *buf, *p; int buflen, ret; struct super_block *sb = inode->i_sb; -struct dentry *dentry = filp->f_dentry; +struct dentry *dentry = filp->f_path.dentry; struct prlfs_file_info pfi; struct prlfs_fd *pfd; @@ -100,9 +100,9 @@ u8 type; DPRINTK("ENTER\n"); -assert(filp->f_dentry); -assert(filp->f_dentry->d_sb); -sb = filp->f_dentry->d_sb; +assert(filp->f_path.dentry); +assert(filp->f_path.dentry->d_sb); +sb = filp->f_path.dentry->d_sb; offset = 0; ret = 0; @@ -182,9 +182,9 @@ filp->f_pos, #endif 0); -assert(filp->f_dentry); -assert(filp->f_dentry->d_sb); -sb = filp->f_dentry->d_sb; +assert(filp->f_path.dentry); +assert(filp->f_path.dentry->d_sb); +sb = filp->f_path.dentry->d_sb; buflen = PAGE_SIZE; buf = kmalloc(buflen, GFP_KERNEL); if (buf == NULL) { @@ -238,7 +238,7 @@ } ret = 0; init_pfi(&pfi, PFD(filp)->fd, PFD(filp)->sfid, *off, rw); -dentry = filp->f_dentry; +dentry = filp->f_path.dentry; if (size == 0) goto out; @@ -269,7 +269,7 @@ loff_t *off) { ssize_t ret; -struct dentry *dentry = filp->f_dentry; +struct dentry *dentry = filp->f_path.dentry; struct inode *inode = dentry->d_inode; #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) diff -ru "/home/staffanu/ParallelsTools/Parallels Tools/orig/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c" /usr/lib/parallels-tools/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c --- "/home/staffanu/ParallelsTools/Parallels Tools/orig/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c"2015-03-03 11:43:20.000000000 +0100 +++ /usr/lib/parallels-tools/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c2015-05-17 20:45:30.025512994 +0200 @@ -656,6 +656,20 @@ #define compat_follow_link_t int #endif +struct nameidata { + struct path path; + struct qstr last; + struct path root; + struct inode *inode; /* path.dentry.d_inode */ + unsigned int flags; + unsigned seq, m_seq; + int last_type; + unsigned depth; + struct file *base; + char *saved_names[MAX_NESTED_LINKS + 1]; +}; + + static compat_follow_link_t prlfs_follow_link(struct dentry *dentry, struct nameidata *nd) { diff -ru "/home/staffanu/ParallelsTools/Parallels Tools/orig/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c" /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c --- "/home/staffanu/ParallelsTools/Parallels Tools/orig/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c"2015-03-03 11:43:20.000000000 +0100 +++ /usr/lib/parallels-tools/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c2015-05-17 19:52:13.175780986 +0200 @@ -803,7 +803,7 @@ prl_tg_write(struct file *file, const char __user *buf, size_t nbytes, loff_t *ppos) { -const struct inode *ino = file->f_dentry->d_inode; +const struct inode *ino = file->f_path.dentry->d_inode; struct tg_dev *dev = PDE_DATA(ino); TG_REQ_DESC sdesc; TG_REQUEST hdr, *src; To summarize -- I'm afraid using the above as a patch might be difficult since it was done in a hurry: - f_dentry needs to be changed to f_path.dentry in lots of places. Just search and replace in the few files that are affected (I think it should really be DENTRY(file), but that is harder for search/replace to fix. This is really just a temporary hack anyway. - the struct nameidata needs to be defined before the depth member is explicitly referenced. From what I understand the struct has now been hidden in namei.c and direct access is if course bad. I downloaded the sources for the kernel version included in the Ubuntu 15.04 distribution and copied the struct from there. I couldn't figure out exactly how this works so I didn't make a proper fix that would have involved using only the supported operations on the struct. After this everything compiles just fine. As a hint, if you try to do this then try compiling from time to time using: make -C /usr/lib/parallels-tools/kmods -f Makefile.kmods When this works ok, find the process that is running the installer and send it a CONT signal: ps axl | awk '$10 ~ /D/' kill -CONT xxx I still cannot get higher resolution than 800x600 to work, but file sharing between oses works, and that's what was affected by the patch... Hope this helps someone... Staffan
Just adding myself to the same problems posted here, I have three iterations I upgraded at the same time and it busted all of them. Unacceptable. Now I'm dead in the water and don't want to waste the time going backwards. Major fail.
sudo curl -O ftp://fe.parallels.com/4d50589db0c6213df3ba654fddaeba30/prl_mod.tar.gz curl: (9) Server denied you to change to the given directory