Accepting request 286926 from Virtualization:VMware
- Add open-vm-tools-linux-3.19.0.patch: Fix building of vmhgfs with Kernel 3.19.0+. - Add open-vm-tools-linux-3.19.0.patch: Fix building of vmhgfs with Kernel 3.19.0+. OBS-URL: https://build.opensuse.org/request/show/286926 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/open-vm-tools?expand=0&rev=56
This commit is contained in:
commit
6fa42612c2
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Feb 19 13:35:44 UTC 2015 - dimstar@opensuse.org
|
||||||
|
|
||||||
|
- Add open-vm-tools-linux-3.19.0.patch: Fix building of vmhgfs with
|
||||||
|
Kernel 3.19.0+.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Jan 5 10:07:50 UTC 2015 - dimstar@opensuse.org
|
Mon Jan 5 10:07:50 UTC 2015 - dimstar@opensuse.org
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package open-vm-tools-KMP
|
# spec file for package open-vm-tools-KMP
|
||||||
#
|
#
|
||||||
# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||||
# Copyright (c) 2010 Dominique Leuenberger, Amsterdam, Netherlands.
|
# Copyright (c) 2010 Dominique Leuenberger, Amsterdam, Netherlands.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
@ -80,6 +80,7 @@ Patch8: 0008-Fix-segfault-in-vmhgfs.patch
|
|||||||
Patch10: open-vm-tools-linux-3.17.patch
|
Patch10: open-vm-tools-linux-3.17.patch
|
||||||
Patch11: open-vm-tools-linux-3.17.7.patch
|
Patch11: open-vm-tools-linux-3.17.7.patch
|
||||||
Patch12: open-vm-tools-linux-3.18.0.patch
|
Patch12: open-vm-tools-linux-3.18.0.patch
|
||||||
|
Patch13: open-vm-tools-linux-3.19.0.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
# don't use pkgconfig(gtk+-2.0) so we can build on SLE
|
# don't use pkgconfig(gtk+-2.0) so we can build on SLE
|
||||||
@ -234,6 +235,10 @@ sed -i -e "s/\r//" README
|
|||||||
%patch10 -p1
|
%patch10 -p1
|
||||||
%patch11 -p1
|
%patch11 -p1
|
||||||
%patch12 -p1
|
%patch12 -p1
|
||||||
|
KVER=$(rpm -q kernel-syms --qf %%{version}\n | awk -F. '{print $2}')
|
||||||
|
if [ $KVER -ge 19 ]; then
|
||||||
|
%patch13 -p1
|
||||||
|
fi
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if ! %{KMP}
|
%if ! %{KMP}
|
||||||
|
379
open-vm-tools-linux-3.19.0.patch
Normal file
379
open-vm-tools-linux-3.19.0.patch
Normal file
@ -0,0 +1,379 @@
|
|||||||
|
Index: open-vm-tools-9.4.6-1770165/modules/linux/vmhgfs/dir.c
|
||||||
|
===================================================================
|
||||||
|
--- open-vm-tools-9.4.6-1770165.orig/modules/linux/vmhgfs/dir.c
|
||||||
|
+++ open-vm-tools-9.4.6-1770165/modules/linux/vmhgfs/dir.c
|
||||||
|
@@ -414,7 +414,7 @@ HgfsPackDirOpenRequest(struct file *file
|
||||||
|
|
||||||
|
/* Build full name to send to server. */
|
||||||
|
if (HgfsBuildPath(name, req->bufferSize - (requestSize - 1),
|
||||||
|
- file->f_dentry) < 0) {
|
||||||
|
+ file->f_path.dentry) < 0) {
|
||||||
|
LOG(4, (KERN_DEBUG "VMware hgfs: HgfsPackDirOpenRequest: build path failed\n"));
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
@@ -560,8 +560,8 @@ HgfsPrivateDirRelease(struct file *file,
|
||||||
|
int result = 0;
|
||||||
|
|
||||||
|
ASSERT(file);
|
||||||
|
- ASSERT(file->f_dentry);
|
||||||
|
- ASSERT(file->f_dentry->d_sb);
|
||||||
|
+ ASSERT(file->f_path.dentry);
|
||||||
|
+ ASSERT(file->f_path.dentry->d_sb);
|
||||||
|
|
||||||
|
LOG(6, (KERN_DEBUG "VMware hgfs: HgfsPrivateDirRelease: close fh %u\n", handle));
|
||||||
|
|
||||||
|
@@ -704,7 +704,7 @@ HgfsDirLlseek(struct file *file,
|
||||||
|
loff_t offset,
|
||||||
|
int origin)
|
||||||
|
{
|
||||||
|
- struct dentry *dentry = file->f_dentry;
|
||||||
|
+ struct dentry *dentry = file->f_path.dentry;
|
||||||
|
struct inode *inode = dentry->d_inode;
|
||||||
|
compat_mutex_t *mtx;
|
||||||
|
|
||||||
|
@@ -853,7 +853,7 @@ HgfsReaddirRefreshEntries(struct file *f
|
||||||
|
}
|
||||||
|
|
||||||
|
LOG(6, (KERN_DEBUG "VMware hgfs: %s: error: stale handle (%s) return %d)\n",
|
||||||
|
- __func__, file->f_dentry->d_name.name, result));
|
||||||
|
+ __func__, file->f_path.dentry->d_name.name, result));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -988,9 +988,9 @@ HgfsReaddirNextEntry(struct file *file,
|
||||||
|
char *fileName = NULL;
|
||||||
|
int result;
|
||||||
|
|
||||||
|
- ASSERT(file->f_dentry->d_inode->i_sb);
|
||||||
|
+ ASSERT(file->f_path.dentry->d_inode->i_sb);
|
||||||
|
|
||||||
|
- si = HGFS_SB_TO_COMMON(file->f_dentry->d_inode->i_sb);
|
||||||
|
+ si = HGFS_SB_TO_COMMON(file->f_path.dentry->d_inode->i_sb);
|
||||||
|
*entryIgnore = FALSE;
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -1079,18 +1079,18 @@ HgfsReaddirNextEntry(struct file *file,
|
||||||
|
*/
|
||||||
|
if (!strncmp(entryName, ".", sizeof ".")) {
|
||||||
|
if (!dotAndDotDotIgnore) {
|
||||||
|
- *entryIno = file->f_dentry->d_inode->i_ino;
|
||||||
|
+ *entryIno = file->f_path.dentry->d_inode->i_ino;
|
||||||
|
} else {
|
||||||
|
*entryIgnore = TRUE;
|
||||||
|
}
|
||||||
|
} else if (!strncmp(entryName, "..", sizeof "..")) {
|
||||||
|
if (!dotAndDotDotIgnore) {
|
||||||
|
- *entryIno = compat_parent_ino(file->f_dentry);
|
||||||
|
+ *entryIno = compat_parent_ino(file->f_path.dentry);
|
||||||
|
} else {
|
||||||
|
*entryIgnore = TRUE;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
- *entryIno = HgfsGetFileInode(&entryAttrs, file->f_dentry->d_inode->i_sb);
|
||||||
|
+ *entryIno = HgfsGetFileInode(&entryAttrs, file->f_path.dentry->d_inode->i_sb);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (*entryIgnore) {
|
||||||
|
@@ -1170,16 +1170,16 @@ HgfsDoReaddir(struct file *file,
|
||||||
|
ASSERT(filldirCtx);
|
||||||
|
|
||||||
|
if (!file ||
|
||||||
|
- !(file->f_dentry) ||
|
||||||
|
- !(file->f_dentry->d_inode)) {
|
||||||
|
+ !(file->f_path.dentry) ||
|
||||||
|
+ !(file->f_path.dentry->d_inode)) {
|
||||||
|
LOG(4, (KERN_DEBUG "VMware hgfs: HgfsReaddir: null input\n"));
|
||||||
|
return -EFAULT;
|
||||||
|
}
|
||||||
|
|
||||||
|
LOG(4, (KERN_DEBUG "VMware hgfs: %s(%s, inum %lu, pos %Lu)\n",
|
||||||
|
__func__,
|
||||||
|
- file->f_dentry->d_name.name,
|
||||||
|
- file->f_dentry->d_inode->i_ino,
|
||||||
|
+ file->f_path.dentry->d_name.name,
|
||||||
|
+ file->f_path.dentry->d_inode->i_ino,
|
||||||
|
*currentPos));
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -1294,7 +1294,7 @@ HgfsReaddir(struct file *file, /
|
||||||
|
/* If either dot and dotdot are filled in for us we can exit. */
|
||||||
|
if (!dir_emit_dots(file, ctx)) {
|
||||||
|
LOG(6, (KERN_DEBUG "VMware hgfs: %s: dir_emit_dots(%s, @ %Lu)\n",
|
||||||
|
- __func__, file->f_dentry->d_name.name, ctx->pos));
|
||||||
|
+ __func__, file->f_path.dentry->d_name.name, ctx->pos));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1464,8 +1464,8 @@ HgfsDirRelease(struct inode *inode, //
|
||||||
|
|
||||||
|
ASSERT(inode);
|
||||||
|
ASSERT(file);
|
||||||
|
- ASSERT(file->f_dentry);
|
||||||
|
- ASSERT(file->f_dentry->d_sb);
|
||||||
|
+ ASSERT(file->f_path.dentry);
|
||||||
|
+ ASSERT(file->f_path.dentry->d_sb);
|
||||||
|
|
||||||
|
handle = FILE_GET_FI_P(file)->handle;
|
||||||
|
|
||||||
|
Index: open-vm-tools-9.4.6-1770165/modules/linux/vmhgfs/file.c
|
||||||
|
===================================================================
|
||||||
|
--- open-vm-tools-9.4.6-1770165.orig/modules/linux/vmhgfs/file.c
|
||||||
|
+++ open-vm-tools-9.4.6-1770165/modules/linux/vmhgfs/file.c
|
||||||
|
@@ -362,7 +362,7 @@ HgfsPackOpenRequest(struct inode *inode,
|
||||||
|
/* Build full name to send to server. */
|
||||||
|
if (HgfsBuildPath(name,
|
||||||
|
req->bufferSize - (requestSize - 1),
|
||||||
|
- file->f_dentry) < 0) {
|
||||||
|
+ file->f_path.dentry) < 0) {
|
||||||
|
LOG(4, (KERN_DEBUG "VMware hgfs: HgfsPackOpenRequest: build path "
|
||||||
|
"failed\n"));
|
||||||
|
return -EINVAL;
|
||||||
|
@@ -589,8 +589,8 @@ HgfsOpen(struct inode *inode, // IN: In
|
||||||
|
ASSERT(inode);
|
||||||
|
ASSERT(inode->i_sb);
|
||||||
|
ASSERT(file);
|
||||||
|
- ASSERT(file->f_dentry);
|
||||||
|
- ASSERT(file->f_dentry->d_inode);
|
||||||
|
+ ASSERT(file->f_path.dentry);
|
||||||
|
+ ASSERT(file->f_path.dentry->d_inode);
|
||||||
|
|
||||||
|
iinfo = INODE_GET_II_P(inode);
|
||||||
|
|
||||||
|
@@ -667,7 +667,7 @@ HgfsOpen(struct inode *inode, // IN: In
|
||||||
|
* This is not the root of our file system so there should always
|
||||||
|
* be a parent.
|
||||||
|
*/
|
||||||
|
- ASSERT(file->f_dentry->d_parent);
|
||||||
|
+ ASSERT(file->f_path.dentry->d_parent);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Here we obtain a reference on the parent to make sure it doesn't
|
||||||
|
@@ -682,10 +682,10 @@ HgfsOpen(struct inode *inode, // IN: In
|
||||||
|
* We could do this if we were willing to give up support for
|
||||||
|
* O_EXCL on 2.4 kernels.
|
||||||
|
*/
|
||||||
|
- dparent = dget(file->f_dentry->d_parent);
|
||||||
|
+ dparent = dget(file->f_path.dentry->d_parent);
|
||||||
|
iparent = dparent->d_inode;
|
||||||
|
|
||||||
|
- HgfsSetUidGid(iparent, file->f_dentry,
|
||||||
|
+ HgfsSetUidGid(iparent, file->f_path.dentry,
|
||||||
|
current_fsuid(), current_fsgid());
|
||||||
|
|
||||||
|
dput(dparent);
|
||||||
|
@@ -745,7 +745,7 @@ out:
|
||||||
|
* forcing a revalidate on one will not force it on any others.
|
||||||
|
*/
|
||||||
|
if (result != 0 && iinfo->createdAndUnopened == TRUE) {
|
||||||
|
- HgfsDentryAgeForce(file->f_dentry);
|
||||||
|
+ HgfsDentryAgeForce(file->f_path.dentry);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
@@ -781,12 +781,12 @@ HgfsAioRead(struct kiocb *iocb, //
|
||||||
|
|
||||||
|
ASSERT(iocb);
|
||||||
|
ASSERT(iocb->ki_filp);
|
||||||
|
- ASSERT(iocb->ki_filp->f_dentry);
|
||||||
|
+ ASSERT(iocb->ki_filp->f_path.dentry);
|
||||||
|
ASSERT(iov);
|
||||||
|
|
||||||
|
LOG(6, (KERN_DEBUG "VMware hgfs: HgfsAioRead: was called\n"));
|
||||||
|
|
||||||
|
- result = HgfsRevalidate(iocb->ki_filp->f_dentry);
|
||||||
|
+ result = HgfsRevalidate(iocb->ki_filp->f_path.dentry);
|
||||||
|
if (result) {
|
||||||
|
LOG(4, (KERN_DEBUG "VMware hgfs: HgfsAioRead: invalid dentry\n"));
|
||||||
|
goto out;
|
||||||
|
@@ -832,10 +832,10 @@ HgfsAioWrite(struct kiocb *iocb, //
|
||||||
|
|
||||||
|
ASSERT(iocb);
|
||||||
|
ASSERT(iocb->ki_filp);
|
||||||
|
- ASSERT(iocb->ki_filp->f_dentry);
|
||||||
|
+ ASSERT(iocb->ki_filp->f_path.dentry);
|
||||||
|
ASSERT(iov);
|
||||||
|
|
||||||
|
- writeDentry = iocb->ki_filp->f_dentry;
|
||||||
|
+ writeDentry = iocb->ki_filp->f_path.dentry;
|
||||||
|
iinfo = INODE_GET_II_P(writeDentry->d_inode);
|
||||||
|
|
||||||
|
LOG(4, (KERN_DEBUG "VMware hgfs: HgfsAioWrite(%s/%s, %lu@%Ld)\n",
|
||||||
|
@@ -915,14 +915,14 @@ HgfsRead(struct file *file, // IN: Fil
|
||||||
|
int result;
|
||||||
|
|
||||||
|
ASSERT(file);
|
||||||
|
- ASSERT(file->f_dentry);
|
||||||
|
+ ASSERT(file->f_path.dentry);
|
||||||
|
ASSERT(buf);
|
||||||
|
ASSERT(offset);
|
||||||
|
|
||||||
|
LOG(6, (KERN_DEBUG "VMware hgfs: HgfsRead: read %Zu bytes from fh %u "
|
||||||
|
"at offset %Lu\n", count, FILE_GET_FI_P(file)->handle, *offset));
|
||||||
|
|
||||||
|
- result = HgfsRevalidate(file->f_dentry);
|
||||||
|
+ result = HgfsRevalidate(file->f_path.dentry);
|
||||||
|
if (result) {
|
||||||
|
LOG(4, (KERN_DEBUG "VMware hgfs: HgfsRead: invalid dentry\n"));
|
||||||
|
goto out;
|
||||||
|
@@ -968,15 +968,15 @@ HgfsWrite(struct file *file, // IN:
|
||||||
|
int result;
|
||||||
|
|
||||||
|
ASSERT(file);
|
||||||
|
- ASSERT(file->f_dentry);
|
||||||
|
- ASSERT(file->f_dentry->d_inode);
|
||||||
|
+ ASSERT(file->f_path.dentry);
|
||||||
|
+ ASSERT(file->f_path.dentry->d_inode);
|
||||||
|
ASSERT(buf);
|
||||||
|
ASSERT(offset);
|
||||||
|
|
||||||
|
LOG(6, (KERN_DEBUG "VMware hgfs: HgfsWrite: write %Zu bytes to fh %u "
|
||||||
|
"at offset %Lu\n", count, FILE_GET_FI_P(file)->handle, *offset));
|
||||||
|
|
||||||
|
- result = HgfsRevalidate(file->f_dentry);
|
||||||
|
+ result = HgfsRevalidate(file->f_path.dentry);
|
||||||
|
if (result) {
|
||||||
|
LOG(4, (KERN_DEBUG "VMware hgfs: HgfsWrite: invalid dentry\n"));
|
||||||
|
goto out;
|
||||||
|
@@ -1020,12 +1020,12 @@ HgfsSeek(struct file *file, // IN: Fil
|
||||||
|
loff_t result = -1;
|
||||||
|
|
||||||
|
ASSERT(file);
|
||||||
|
- ASSERT(file->f_dentry);
|
||||||
|
+ ASSERT(file->f_path.dentry);
|
||||||
|
|
||||||
|
LOG(6, (KERN_DEBUG "VMware hgfs: HgfsSeek: seek to %Lu bytes from fh %u "
|
||||||
|
"from position %d\n", offset, FILE_GET_FI_P(file)->handle, origin));
|
||||||
|
|
||||||
|
- result = (loff_t) HgfsRevalidate(file->f_dentry);
|
||||||
|
+ result = (loff_t) HgfsRevalidate(file->f_path.dentry);
|
||||||
|
if (result) {
|
||||||
|
LOG(6, (KERN_DEBUG "VMware hgfs: HgfsSeek: invalid dentry\n"));
|
||||||
|
goto out;
|
||||||
|
@@ -1108,8 +1108,8 @@ HgfsFlush(struct file *file
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
LOG(4, (KERN_DEBUG "VMware hgfs: HgfsFlush(%s/%s)\n",
|
||||||
|
- file->f_dentry->d_parent->d_name.name,
|
||||||
|
- file->f_dentry->d_name.name));
|
||||||
|
+ file->f_path.dentry->d_parent->d_name.name,
|
||||||
|
+ file->f_path.dentry->d_name.name));
|
||||||
|
|
||||||
|
if ((file->f_mode & FMODE_WRITE) == 0) {
|
||||||
|
goto exit;
|
||||||
|
@@ -1121,7 +1121,7 @@ HgfsFlush(struct file *file
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 36)
|
||||||
|
ret = vfs_fsync(file, 0);
|
||||||
|
#else
|
||||||
|
- ret = HgfsDoFsync(file->f_dentry->d_inode);
|
||||||
|
+ ret = HgfsDoFsync(file->f_path.dentry->d_inode);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
exit:
|
||||||
|
@@ -1177,13 +1177,13 @@ HgfsFsync(struct file *file, // IN: Fil
|
||||||
|
#endif
|
||||||
|
|
||||||
|
LOG(4, (KERN_DEBUG "VMware hgfs: HgfsFsync(%s/%s, %lld, %lld, %d)\n",
|
||||||
|
- file->f_dentry->d_parent->d_name.name,
|
||||||
|
- file->f_dentry->d_name.name,
|
||||||
|
+ file->f_path.dentry->d_parent->d_name.name,
|
||||||
|
+ file->f_path.dentry->d_name.name,
|
||||||
|
startRange, endRange,
|
||||||
|
datasync));
|
||||||
|
|
||||||
|
/* Flush writes to the server and return any errors */
|
||||||
|
- inode = file->f_dentry->d_inode;
|
||||||
|
+ inode = file->f_path.dentry->d_inode;
|
||||||
|
#if defined VMW_FSYNC_31
|
||||||
|
ret = filemap_write_and_wait_range(inode->i_mapping, startRange, endRange);
|
||||||
|
#else
|
||||||
|
@@ -1223,11 +1223,11 @@ HgfsMmap(struct file *file, // IN: File
|
||||||
|
|
||||||
|
ASSERT(file);
|
||||||
|
ASSERT(vma);
|
||||||
|
- ASSERT(file->f_dentry);
|
||||||
|
+ ASSERT(file->f_path.dentry);
|
||||||
|
|
||||||
|
LOG(6, (KERN_DEBUG "VMware hgfs: HgfsMmap: was called\n"));
|
||||||
|
|
||||||
|
- result = HgfsRevalidate(file->f_dentry);
|
||||||
|
+ result = HgfsRevalidate(file->f_path.dentry);
|
||||||
|
if (result) {
|
||||||
|
LOG(4, (KERN_DEBUG "VMware hgfs: HgfsMmap: invalid dentry\n"));
|
||||||
|
goto out;
|
||||||
|
@@ -1268,8 +1268,8 @@ HgfsRelease(struct inode *inode, // IN:
|
||||||
|
|
||||||
|
ASSERT(inode);
|
||||||
|
ASSERT(file);
|
||||||
|
- ASSERT(file->f_dentry);
|
||||||
|
- ASSERT(file->f_dentry->d_sb);
|
||||||
|
+ ASSERT(file->f_path.dentry);
|
||||||
|
+ ASSERT(file->f_path.dentry->d_sb);
|
||||||
|
|
||||||
|
handle = FILE_GET_FI_P(file)->handle;
|
||||||
|
LOG(6, (KERN_DEBUG "VMware hgfs: HgfsRelease: close fh %u\n", handle));
|
||||||
|
@@ -1398,14 +1398,14 @@ HgfsSendfile(struct file *file, // IN
|
||||||
|
ssize_t result;
|
||||||
|
|
||||||
|
ASSERT(file);
|
||||||
|
- ASSERT(file->f_dentry);
|
||||||
|
+ ASSERT(file->f_path.dentry);
|
||||||
|
ASSERT(target);
|
||||||
|
ASSERT(offset);
|
||||||
|
ASSERT(actor);
|
||||||
|
|
||||||
|
LOG(6, (KERN_DEBUG "VMware hgfs: HgfsSendfile: was called\n"));
|
||||||
|
|
||||||
|
- result = HgfsRevalidate(file->f_dentry);
|
||||||
|
+ result = HgfsRevalidate(file->f_path.dentry);
|
||||||
|
if (result) {
|
||||||
|
LOG(4, (KERN_DEBUG "VMware hgfs: HgfsSendfile: invalid dentry\n"));
|
||||||
|
goto out;
|
||||||
|
@@ -1452,11 +1452,11 @@ HgfsSpliceRead(struct file *file,
|
||||||
|
ssize_t result;
|
||||||
|
|
||||||
|
ASSERT(file);
|
||||||
|
- ASSERT(file->f_dentry);
|
||||||
|
+ ASSERT(file->f_path.dentry);
|
||||||
|
|
||||||
|
LOG(6, (KERN_DEBUG "VMware hgfs: HgfsSpliceRead: was called\n"));
|
||||||
|
|
||||||
|
- result = HgfsRevalidate(file->f_dentry);
|
||||||
|
+ result = HgfsRevalidate(file->f_path.dentry);
|
||||||
|
if (result) {
|
||||||
|
LOG(4, (KERN_DEBUG "VMware hgfs: HgfsSpliceRead: invalid dentry\n"));
|
||||||
|
goto out;
|
||||||
|
Index: open-vm-tools-9.4.6-1770165/modules/linux/vmhgfs/fsutil.c
|
||||||
|
===================================================================
|
||||||
|
--- open-vm-tools-9.4.6-1770165.orig/modules/linux/vmhgfs/fsutil.c
|
||||||
|
+++ open-vm-tools-9.4.6-1770165/modules/linux/vmhgfs/fsutil.c
|
||||||
|
@@ -1936,7 +1936,7 @@ HgfsCreateFileInfo(struct file *file, /
|
||||||
|
|
||||||
|
ASSERT(file);
|
||||||
|
|
||||||
|
- inodeInfo = INODE_GET_II_P(file->f_dentry->d_inode);
|
||||||
|
+ inodeInfo = INODE_GET_II_P(file->f_path.dentry->d_inode);
|
||||||
|
ASSERT(inodeInfo);
|
||||||
|
|
||||||
|
/* Get the mode of the opened file. */
|
||||||
|
Index: open-vm-tools-9.4.6-1770165/modules/linux/vmhgfs/tcp.c
|
||||||
|
===================================================================
|
||||||
|
--- open-vm-tools-9.4.6-1770165.orig/modules/linux/vmhgfs/tcp.c
|
||||||
|
+++ open-vm-tools-9.4.6-1770165/modules/linux/vmhgfs/tcp.c
|
||||||
|
@@ -250,7 +250,7 @@ HgfsSocketRecvMsg(struct socket *socket,
|
||||||
|
size_t bufferLen) // IN: Buffer length
|
||||||
|
{
|
||||||
|
struct iovec iov;
|
||||||
|
- struct msghdr msg;
|
||||||
|
+ struct user_msghdr msg;
|
||||||
|
int ret;
|
||||||
|
int flags = MSG_DONTWAIT | MSG_NOSIGNAL;
|
||||||
|
mm_segment_t oldfs = get_fs();
|
||||||
|
@@ -765,7 +765,7 @@ HgfsSocketSendMsg(struct socket *socket,
|
||||||
|
size_t bufferLen) // IN: Buffer length
|
||||||
|
{
|
||||||
|
struct iovec iov;
|
||||||
|
- struct msghdr msg;
|
||||||
|
+ struct user_msghdr msg;
|
||||||
|
int ret = 0;
|
||||||
|
int i = 0;
|
||||||
|
mm_segment_t oldfs = get_fs();
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Feb 19 13:35:44 UTC 2015 - dimstar@opensuse.org
|
||||||
|
|
||||||
|
- Add open-vm-tools-linux-3.19.0.patch: Fix building of vmhgfs with
|
||||||
|
Kernel 3.19.0+.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Jan 5 10:07:50 UTC 2015 - dimstar@opensuse.org
|
Mon Jan 5 10:07:50 UTC 2015 - dimstar@opensuse.org
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package open-vm-tools
|
# spec file for package open-vm-tools
|
||||||
#
|
#
|
||||||
# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||||
# Copyright (c) 2010 Dominique Leuenberger, Amsterdam, Netherlands.
|
# Copyright (c) 2010 Dominique Leuenberger, Amsterdam, Netherlands.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
@ -80,6 +80,7 @@ Patch8: 0008-Fix-segfault-in-vmhgfs.patch
|
|||||||
Patch10: open-vm-tools-linux-3.17.patch
|
Patch10: open-vm-tools-linux-3.17.patch
|
||||||
Patch11: open-vm-tools-linux-3.17.7.patch
|
Patch11: open-vm-tools-linux-3.17.7.patch
|
||||||
Patch12: open-vm-tools-linux-3.18.0.patch
|
Patch12: open-vm-tools-linux-3.18.0.patch
|
||||||
|
Patch13: open-vm-tools-linux-3.19.0.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
# don't use pkgconfig(gtk+-2.0) so we can build on SLE
|
# don't use pkgconfig(gtk+-2.0) so we can build on SLE
|
||||||
@ -234,6 +235,10 @@ sed -i -e "s/\r//" README
|
|||||||
%patch10 -p1
|
%patch10 -p1
|
||||||
%patch11 -p1
|
%patch11 -p1
|
||||||
%patch12 -p1
|
%patch12 -p1
|
||||||
|
KVER=$(rpm -q kernel-syms --qf %%{version}\n | awk -F. '{print $2}')
|
||||||
|
if [ $KVER -ge 19 ]; then
|
||||||
|
%patch13 -p1
|
||||||
|
fi
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if ! %{KMP}
|
%if ! %{KMP}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user