Date: Monday, February 9, 2015 @ 16:13:26 Author: foutrelis Revision: 127400
upgpkg: virtualbox 4.3.20-5 Add upstream patch for Linux 3.17 support. Added: virtualbox/trunk/008-linux-3.19.patch Modified: virtualbox/trunk/PKGBUILD ----------------------+ 008-linux-3.19.patch | 97 +++++++++++++++++++++++++++++++++++++++++++++++++ PKGBUILD | 10 +++-- 2 files changed, 103 insertions(+), 4 deletions(-) Added: 008-linux-3.19.patch =================================================================== --- 008-linux-3.19.patch (rev 0) +++ 008-linux-3.19.patch 2015-02-09 15:13:26 UTC (rev 127400) @@ -0,0 +1,97 @@ +Index: src/VBox/Additions/linux/sharedfolders/regops.c +=================================================================== +--- a/src/VBox/Additions/linux/sharedfolders/regops.c (revision 97544) ++++ b/src/VBox/Additions/linux/sharedfolders/regops.c (revision 97545) +@@ -108,7 +108,7 @@ + size_t tmp_size; + size_t left = size; + ssize_t total_bytes_read = 0; +- struct inode *inode = file->f_dentry->d_inode; ++ struct inode *inode = GET_F_DENTRY(file)->d_inode; + struct sf_glob_info *sf_g = GET_GLOB_INFO(inode->i_sb); + struct sf_reg_info *sf_r = file->private_data; + loff_t pos = *off; +@@ -183,7 +183,7 @@ + size_t tmp_size; + size_t left = size; + ssize_t total_bytes_written = 0; +- struct inode *inode = file->f_dentry->d_inode; ++ struct inode *inode = GET_F_DENTRY(file)->d_inode; + struct sf_inode_info *sf_i = GET_INODE_INFO(inode); + struct sf_glob_info *sf_g = GET_GLOB_INFO(inode->i_sb); + struct sf_reg_info *sf_r = file->private_data; +@@ -454,7 +454,7 @@ + #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) + static struct page *sf_reg_nopage(struct vm_area_struct *vma, unsigned long vaddr, int *type) + # define SET_TYPE(t) *type = (t) +-#else /* LINUX_VERSION_CODE < KERNEL_VERSION (2, 6, 0) */ ++#else /* LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0) */ + static struct page *sf_reg_nopage(struct vm_area_struct *vma, unsigned long vaddr, int unused) + # define SET_TYPE(t) + #endif +@@ -465,7 +465,7 @@ + uint32_t nread = PAGE_SIZE; + int err; + struct file *file = vma->vm_file; +- struct inode *inode = file->f_dentry->d_inode; ++ struct inode *inode = GET_F_DENTRY(file)->d_inode; + struct sf_glob_info *sf_g = GET_GLOB_INFO(inode->i_sb); + struct sf_reg_info *sf_r = file->private_data; + +@@ -605,7 +605,7 @@ + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) + static int sf_readpage(struct file *file, struct page *page) + { +- struct inode *inode = file->f_dentry->d_inode; ++ struct inode *inode = GET_F_DENTRY(file)->d_inode; + struct sf_glob_info *sf_g = GET_GLOB_INFO(inode->i_sb); + struct sf_reg_info *sf_r = file->private_data; + uint32_t nread = PAGE_SIZE; +Index: src/VBox/Additions/linux/sharedfolders/dirops.c +=================================================================== +--- a/src/VBox/Additions/linux/sharedfolders/dirops.c (revision 97544) ++++ b/src/VBox/Additions/linux/sharedfolders/dirops.c (revision 97545) +@@ -126,15 +126,13 @@ + + TRACE(); + +- sf_g = GET_GLOB_INFO(dir->f_dentry->d_inode->i_sb); ++ inode = GET_F_DENTRY(dir)->d_inode; ++ sf_i = GET_INODE_INFO(inode); ++ sf_g = GET_GLOB_INFO(inode->i_sb); + sf_d = dir->private_data; + + BUG_ON(!sf_g); + BUG_ON(!sf_d); +- +- inode = dir->f_dentry->d_inode; +- sf_i = GET_INODE_INFO(inode); +- + BUG_ON(!sf_i); + + if (sf_i->force_reread) +Index: src/VBox/Additions/linux/sharedfolders/vfsmod.h +=================================================================== +--- a/src/VBox/Additions/linux/sharedfolders/vfsmod.h (revision 97544) ++++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.h (revision 97545) +@@ -145,7 +145,7 @@ + # define SET_GLOB_INFO(sb, sf_g) (sb)->s_fs_info = sf_g + #endif + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 6, 19) || defined(KERNEL_FC6) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || defined(KERNEL_FC6) + /* FC6 kernel 2.6.18, vanilla kernel 2.6.19+ */ + # define GET_INODE_INFO(i) ((struct sf_inode_info *) (i)->i_private) + # define SET_INODE_INFO(i, sf_i) (i)->i_private = sf_i +@@ -155,5 +155,11 @@ + # define SET_INODE_INFO(i, sf_i) (i)->u.generic_ip = sf_i + #endif + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++# define GET_F_DENTRY(f) (f->f_path.dentry) ++#else ++# define GET_F_DENTRY(f) (f->f_dentry) + #endif + ++#endif ++ Modified: PKGBUILD =================================================================== --- PKGBUILD 2015-02-09 15:04:03 UTC (rev 127399) +++ PKGBUILD 2015-02-09 15:13:26 UTC (rev 127400) @@ -11,7 +11,7 @@ 'virtualbox-guest-utils-nox' 'virtualbox-ext-vnc') pkgver=4.3.20 -pkgrel=4 +pkgrel=5 arch=('i686' 'x86_64') url='http://virtualbox.org' license=('GPL' 'custom') @@ -48,7 +48,7 @@ 'xalan-c' 'xf86driproto' 'xorg-server-devel') -[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc') +makedepends_x86_64=('gcc-multilib' 'lib32-glibc') source=("http://download.virtualbox.org/virtualbox/$pkgver/VirtualBox-$pkgver.tar.bz2" 'virtualbox-guest-utils.sysusers' '60-vboxdrv.rules' @@ -64,7 +64,8 @@ '004-xorg.patch' '005-gsoap-build.patch' '006-rdesktop-vrdp-keymap-path.patch' - '007-python2-path.patch') + '007-python2-path.patch' + '008-linux-3.19.patch') md5sums=('cf3f25644aa0fae1029e8b362bd4375e' '4833c8e0524fd2272b24ba0d94aef006' '6e2722bfd7013c1b0174382626ac1b8d' @@ -80,7 +81,8 @@ 'a585770c6652f259c50958478b7ee735' 'ecfd13297d7753ebe7b8763ca5b792d9' '7ea75b242e19440d622eb42a4d6c62c4' - '188ea65918309f737ce28216c2b07c3b') + '188ea65918309f737ce28216c2b07c3b' + 'd8a6630dfc7fe9cd3282947ed0ccf55c') prepare() { cd "VirtualBox-$pkgver"