Compiling virtualbox with Linux 2.6.38

From: Matthew Wilcox
Date: Sun Mar 27 2011 - 07:50:53 EST



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 :-)

Index: src/VBox/Additions/linux/sharedfolders/vfsmod.c
===================================================================
--- src/VBox/Additions/linux/sharedfolders/vfsmod.c (revision 36443)
+++ src/VBox/Additions/linux/sharedfolders/vfsmod.c (working copy)
@@ -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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/