Index: VirtualBox-5.1.14/src/VBox/Runtime/r0drv/linux/semmutex-r0drv-linux.c =================================================================== --- VirtualBox-5.1.14.orig/src/VBox/Runtime/r0drv/linux/semmutex-r0drv-linux.c +++ VirtualBox-5.1.14/src/VBox/Runtime/r0drv/linux/semmutex-r0drv-linux.c @@ -40,8 +40,9 @@ #include #include "internal/magics.h" - - +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) +#include +#endif /********************************************************************************************************************************* * Structures and Typedefs * *********************************************************************************************************************************/ @@ -206,7 +207,7 @@ static int rtSemMutexLinuxRequestSleep(P break; /* Go to sleep. */ - set_task_state(pSelf, fInterruptible ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE); + set_current_state(fInterruptible ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE); spin_unlock_irq(&pThis->Spinlock); lTimeout = schedule_timeout(lTimeout); Index: VirtualBox-5.1.14/src/VBox/Runtime/r0drv/linux/semeventmulti-r0drv-linux.c =================================================================== --- VirtualBox-5.1.14.orig/src/VBox/Runtime/r0drv/linux/semeventmulti-r0drv-linux.c +++ VirtualBox-5.1.14/src/VBox/Runtime/r0drv/linux/semeventmulti-r0drv-linux.c @@ -32,6 +32,9 @@ #include "the-linux-kernel.h" #include "internal/iprt.h" #include +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) +#include +#endif #include #include Index: VirtualBox-5.1.14/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c =================================================================== --- VirtualBox-5.1.14.orig/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c +++ VirtualBox-5.1.14/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c @@ -35,6 +35,10 @@ #include #include #include "internal/thread.h" +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) +#include +#include +#endif RTDECL(RTTHREAD) RTThreadSelf(void) Index: VirtualBox-5.1.14/src/VBox/Runtime/r0drv/linux/semevent-r0drv-linux.c =================================================================== --- VirtualBox-5.1.14.orig/src/VBox/Runtime/r0drv/linux/semevent-r0drv-linux.c +++ VirtualBox-5.1.14/src/VBox/Runtime/r0drv/linux/semevent-r0drv-linux.c @@ -38,11 +38,13 @@ #include #include #include +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) +#include +#endif #include "waitqueue-r0drv-linux.h" #include "internal/magics.h" - /********************************************************************************************************************************* * Structures and Typedefs * *********************************************************************************************************************************/ Index: VirtualBox-5.1.14/src/VBox/Additions/linux/sharedfolders/utils.c =================================================================== --- VirtualBox-5.1.14.orig/src/VBox/Additions/linux/sharedfolders/utils.c +++ VirtualBox-5.1.14/src/VBox/Additions/linux/sharedfolders/utils.c @@ -290,8 +290,15 @@ sf_dentry_revalidate(struct dentry *dent has inode at all) from these new attributes we derive [kstat] via [generic_fillattr] */ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) +int sf_getattr(const struct path *path, struct kstat *kstat, + u32 request_mask, unsigned int flags) +{ + struct dentry *dentry = path->dentry; +#else int sf_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *kstat) { +#endif int err; TRACE(); Index: VirtualBox-5.1.14/src/VBox/Additions/linux/sharedfolders/vfsmod.h =================================================================== --- VirtualBox-5.1.14.orig/src/VBox/Additions/linux/sharedfolders/vfsmod.h +++ VirtualBox-5.1.14/src/VBox/Additions/linux/sharedfolders/vfsmod.h @@ -100,8 +100,13 @@ extern int sf_stat(const char *caller, SHFLSTRING *path, PSHFLFSOBJINFO result, int ok_to_fail); extern int sf_inode_revalidate(struct dentry *dentry); #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) -extern int sf_getattr(struct vfsmount *mnt, struct dentry *dentry, - struct kstat *kstat); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) +extern int sf_getattr(const struct path *path, struct kstat *kstat, + u32 request_mask, unsigned int flags); +#else +extern int sf_getattr(struct vfsmount *mnt, struct dentry *dentry, + struct kstat *kstat); +#endif extern int sf_setattr(struct dentry *dentry, struct iattr *iattr); #endif extern int sf_path_from_dentry(const char *caller, struct sf_glob_info *sf_g, Index: VirtualBox-5.1.14/src/VBox/Additions/linux/sharedfolders/regops.c =================================================================== --- VirtualBox-5.1.14.orig/src/VBox/Additions/linux/sharedfolders/regops.c +++ VirtualBox-5.1.14/src/VBox/Additions/linux/sharedfolders/regops.c @@ -445,7 +445,11 @@ static int sf_reg_release(struct inode * } #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 25) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) +static int sf_reg_fault(struct vm_fault *vmf) +#else static int sf_reg_fault(struct vm_area_struct *vma, struct vm_fault *vmf) +#endif #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) @@ -459,6 +463,9 @@ static struct page *sf_reg_nopage(struct loff_t off; uint32_t nread = PAGE_SIZE; int err; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) + struct vm_area_struct *vma = vmf->vma; +#endif struct file *file = vma->vm_file; struct inode *inode = GET_F_DENTRY(file)->d_inode; struct sf_glob_info *sf_g = GET_GLOB_INFO(inode->i_sb);