Skip to contentSkip to conversation

Compiling virtualbox with Linux 2.6.38

PATCH Matthew Wilcox 1 participant 1 message Mar 27, 2011 VFS

lore
Share & tools
lore
#0 lore raw

The Virtualbox developers have segregated themselves into a walled garden of their own choice (only subscribers may post to vbox-dev; you have to sign up to join their forums, etc, etc.). So in the hopes of reaching anybody who cares, here is a patch to Virtualbox to handle the recent VFS change of replacing ->get_sb with ->mount.

This isn't enough to get virtualbox to compile with a recent kernel. The DRM change that replaced pci_driver with kdriver seems harder to ifdef a solution to. Maybe somebody else out there has already done this work and is similarly waiting for somebody else to do the VFS portion :-)

VBox/Additions/linux/sharedfolders/vfsmod.c +12 -1
Index: src/VBox/Additions/linux/sharedfolders/vfsmod.c
===================================================================
@@ -453,20 +453,31 @@
     TRACE();
     return get_sb_nodev(fs_type, flags, data, sf_read_super_26);
 }
-#else
+#elsif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 37)
 static int sf_get_sb(struct file_system_type *fs_type, int flags,
                      const char *dev_name, void *data, struct vfsmount *mnt)
 {
     TRACE();
     return get_sb_nodev(fs_type, flags, data, sf_read_super_26, mnt);
 }
+#else
+static struct dentry *sf_mount(struct file_system_type *fs_type, int flags,
+                     const char *dev_name, void *data)
+{
+    TRACE();
+    return mount_nodev(fs_type, flags, data, sf_read_super_26);
+}
 #endif
 
 static struct file_system_type vboxsf_fs_type =
 {
     .owner   = THIS_MODULE,
     .name    = "vboxsf",
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 37)
     .get_sb  = sf_get_sb,
+#else
+    .mount   = sf_mount,
+#endif
     .kill_sb = kill_anon_super
 };
 #endif