From 39a59ab7efe98c880c783b2ccf43e5a137d2b222 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 27 Aug 2018 23:22:21 -0700
Subject: [PATCH] Use off64_t instead of __off64_t

Fixes
unknown type name '__off64_t'

Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 open-vm-tools/lib/file/fileIOPosix.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/open-vm-tools/lib/file/fileIOPosix.c b/open-vm-tools/lib/file/fileIOPosix.c
index 492a4bf4a..a80a884cd 100644
--- a/open-vm-tools/lib/file/fileIOPosix.c
+++ b/open-vm-tools/lib/file/fileIOPosix.c
@@ -211,10 +211,10 @@ static AlignedPool alignedPool;
        * the symbols (and anyone building XOPEN<700 gets nothing).
        */
       extern ssize_t preadv64(int fd, const struct iovec *iov, int iovcnt,
-                          __off64_t offset) __attribute__ ((weak));
+                          off64_t offset) __attribute__ ((weak));
 
       extern ssize_t pwritev64(int fd, const struct iovec *iov, int iovcnt,
-                          __off64_t offset) __attribute__ ((weak));
+                          off64_t offset) __attribute__ ((weak));
    #else
       #error "Large file support is unavailable."
    #endif
-- 
2.25.1

