freebsd-ports/emulators/open-vm-tools/files/patch-freebsd-8
Martin Blapp 5fc5a0bb73 Upgrade open-vm-tools to build 210370 (PR 142112)
Fix complile on FreeBSD 9
Add missing pkg-plist files

PR:		ports/142112 (partly)
Submitted by:	Steve Wills <steve@mouf.net>
2010-01-02 16:29:44 +00:00

170 lines
4.2 KiB
Text

--- modules/freebsd/vmhgfs/vnops.c.orig 2009-02-18 17:02:35.000000000 +0900
+++ modules/freebsd/vmhgfs/vnops.c 2009-03-01 17:47:10.000000000 +0900
@@ -325,7 +325,11 @@
*/
{
struct vnode *vp = ap->a_vp;
+#if __FreeBSD_version >= 800001
+ int mode = ap->a_accmode;
+#else
int mode = ap->a_mode;
+#endif
HgfsAccessMode accessMode = 0;
Bool isDir = vp->v_type == VDIR;
if (mode & VREAD) {
--- modules/freebsd/vmblock/vfsops.c.orig 2009-03-18 03:03:21.000000000 -0400
+++ modules/freebsd/vmblock/vfsops.c 2009-05-23 02:25:50.892549675 -0400
@@ -126,6 +126,11 @@
char *target;
int len, error = 0;
+#if __FreeBSD_version >= 800087
+ struct thread *td;
+ td = curthread;
+#endif
+
VMBLOCKDEBUG("VMBlockVFSMount(mp = %p)\n", (void *)mp);
/*
@@ -273,6 +278,11 @@
int error;
int flags = 0, removed = 0;
+#if __FreeBSD_version >= 800087
+ struct thread *td;
+ td = curthread;
+#endif
+
VMBLOCKDEBUG("VMBlockVFSUnmount: mp = %p\n", (void *)mp);
xmp = MNTTOVMBLOCKMNT(mp);
@@ -448,10 +458,15 @@
VMBlockVFSSync(struct mount *mp, // Ignored
int waitfor) // Ignored
#else
+#if __FreeBSD_version >= 800087
+VMBlockVFSSync(struct mount *mp,
+ int waitfor)
+#else
VMBlockVFSSync(struct mount *mp, // Ignored
int waitfor, // Ignored
struct thread *td) // Ignored
#endif
+#endif
{
return 0;
}
--- modules/freebsd/vmhgfs/vfsops.c.orig 2009-03-18 03:03:26.000000000 -0400
+++ modules/freebsd/vmhgfs/vfsops.c 2009-05-23 02:56:39.608109670 -0400
@@ -109,8 +109,12 @@
*/
static int
+#if __FreeBSD_version >= 800087
+HgfsVfsMount(struct mount *mp)
+#else
HgfsVfsMount(struct mount *mp, // IN: structure representing the file system
struct thread *td) // IN: thread which is mounting the file system
+#endif
{
HgfsSuperInfo *sip;
struct vnode *vp;
@@ -122,6 +126,10 @@
int *uid = NULL;
Bool *gidSet = NULL;
int *gid = NULL;
+#if __FreeBSD_version >= 800087
+ struct thread *td;
+ td = curthread;
+#endif
/*
* - Examine/validate mount flags from userland.
@@ -145,7 +153,11 @@
* Since Hgfs requires the caller to be root, only allow mount attempts made
* by the superuser.
*/
+#if __FreeBSD_version >= 800001
+ if ((ret = priv_check(td, PRIV_VFS_MOUNT)) != 0) {
+#else
if ((ret = suser(td)) != 0) {
+#endif
return ret;
}
@@ -277,11 +289,19 @@
*/
static int
+#if __FreeBSD_version >= 800087
+HgfsVfsUnmount(struct mount *mp, int mntflags)
+#else
HgfsVfsUnmount(struct mount *mp, int mntflags, struct thread *td)
+#endif
{
HgfsSuperInfo *sip;
int ret = 0;
int flags = 0;
+#if __FreeBSD_version >= 800087
+ struct thread *td;
+ td = curthread;
+#endif
sip = (HgfsSuperInfo *)mp->mnt_data;
@@ -348,10 +368,18 @@
*/
static int
+#if __FreeBSD_version >= 800087
+HgfsVfsStatfs(struct mount *mp, struct statfs *sbp)
+#else
HgfsVfsStatfs(struct mount *mp, struct statfs *sbp, struct thread *td)
+#endif
{
int ret = 0;
struct vnode *vp;
+#if __FreeBSD_version >= 800087
+ struct thread *td;
+ td = curthread;
+#endif
/* We always want HGFS_BLOCKSIZE to be a power of two */
ASSERT_ON_COMPILE(HGFS_IS_POWER_OF_TWO(HGFS_BLOCKSIZE));
@@ -361,8 +389,11 @@
* we got from a call to vfs_getnewfsid() in HgfsVfsMount()
*/
bcopy(&mp->mnt_stat, sbp, sizeof mp->mnt_stat);
-
+#if __FreeBSD_version >= 800087
+ ret = HgfsVfsRoot(mp, LK_SHARED, &vp);
+#else
ret = HgfsVfsRoot(mp, LK_SHARED, &vp, td);
+#endif
if (ret) {
DEBUG(VM_DEBUG_FAIL, "HgfsVfsRoot failed\n");
return ret;
@@ -397,13 +428,23 @@
*/
static int
+#if __FreeBSD_version >= 800087
+HgfsVfsRoot(struct mount *mp,
+ int flags,
+ struct vnode **vpp)
+#else
HgfsVfsRoot(struct mount *mp, // IN: Filesystem structure
int flags, // IN: Flags to vget
struct vnode **vpp, // OUT: Address of root vnode
struct thread *td) // IN: Thread structure
+#endif
{
HgfsSuperInfo *sip = (HgfsSuperInfo *)mp->mnt_data;
int ret = 0;
+#if __FreeBSD_version >= 800087
+ struct thread *td;
+ td = curthread;
+#endif
*vpp = NULL;