92 lines
2.4 KiB
Diff
92 lines
2.4 KiB
Diff
|
--- nfs-ganesha-2.0.0/src/CMakeLists.txt.orig 2014-05-20 13:58:50.685211144 -0400
|
||
|
+++ nfs-ganesha-2.0.0/src/CMakeLists.txt 2014-05-20 14:00:24.825924703 -0400
|
||
|
@@ -125,6 +125,7 @@
|
||
|
|
||
|
if (LINUX)
|
||
|
set(PLATFORM "LINUX")
|
||
|
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_LARGEFILE64_SOURCE")
|
||
|
set(OS_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/include/os/linux")
|
||
|
find_library(LIBDL dl) # module loader
|
||
|
endif(LINUX)
|
||
|
--- nfs-ganesha-2.0.0/src/os/linux/subr.c.orig 2014-05-20 14:02:56.340987294 -0400
|
||
|
+++ nfs-ganesha-2.0.0/src/os/linux/subr.c 2014-05-20 14:03:41.196565516 -0400
|
||
|
@@ -34,6 +34,7 @@
|
||
|
#include <sys/syscall.h>
|
||
|
#include "os/subr.h"
|
||
|
|
||
|
+#ifdef NOT_TRUE
|
||
|
/* not defined in linux headers so we do it here
|
||
|
*/
|
||
|
struct linux_dirent {
|
||
|
@@ -50,6 +51,7 @@
|
||
|
// offset is (d_reclen - 1))
|
||
|
*/
|
||
|
};
|
||
|
+#endif
|
||
|
|
||
|
/**
|
||
|
* @brief Read system directory entries into the buffer
|
||
|
@@ -63,7 +65,7 @@
|
||
|
{
|
||
|
int retval = 0;
|
||
|
|
||
|
- retval = syscall(SYS_getdents, fd, buf, bcount);
|
||
|
+ retval = syscall(SYS_getdents64, fd, buf, bcount);
|
||
|
if (retval >= 0)
|
||
|
*basepp += retval;
|
||
|
return retval;
|
||
|
@@ -82,7 +84,7 @@
|
||
|
|
||
|
bool to_vfs_dirent(char *buf, int bpos, struct vfs_dirent *vd, off_t base)
|
||
|
{
|
||
|
- struct linux_dirent *dp = (struct linux_dirent *)(buf + bpos);
|
||
|
+ struct dirent64 *dp = (struct dirent64 *)(buf + bpos);
|
||
|
char type;
|
||
|
|
||
|
vd->vd_ino = dp->d_ino;
|
||
|
--- nfs-ganesha-2.0.0/src/FSAL/FSAL_GPFS/handle.c.orig 2014-05-20 14:30:03.880250822 -0400
|
||
|
+++ nfs-ganesha-2.0.0/src/FSAL/FSAL_GPFS/handle.c 2014-05-20 14:31:41.470619655 -0400
|
||
|
@@ -438,6 +438,7 @@
|
||
|
return status;
|
||
|
}
|
||
|
|
||
|
+#ifdef NOT_TRUE
|
||
|
/* not defined in linux headers so we do it here
|
||
|
*/
|
||
|
|
||
|
@@ -455,6 +456,7 @@
|
||
|
// offset is (d_reclen - 1))
|
||
|
*/
|
||
|
};
|
||
|
+#endif
|
||
|
|
||
|
#define BUF_SIZE 1024
|
||
|
/**
|
||
|
@@ -480,7 +482,7 @@
|
||
|
fsal_status_t status;
|
||
|
off_t seekloc = 0;
|
||
|
int bpos, cnt, nread;
|
||
|
- struct linux_dirent *dentry;
|
||
|
+ struct dirent64 *dentry;
|
||
|
char buf[BUF_SIZE];
|
||
|
|
||
|
if (whence != NULL)
|
||
|
@@ -502,7 +504,7 @@
|
||
|
}
|
||
|
cnt = 0;
|
||
|
do {
|
||
|
- nread = syscall(SYS_getdents, dirfd, buf, BUF_SIZE);
|
||
|
+ nread = syscall(SYS_getdents64, dirfd, buf, BUF_SIZE);
|
||
|
if (nread < 0) {
|
||
|
retval = errno;
|
||
|
fsal_error = posix2fsal_error(retval);
|
||
|
@@ -511,7 +513,7 @@
|
||
|
if (nread == 0)
|
||
|
break;
|
||
|
for (bpos = 0; bpos < nread;) {
|
||
|
- dentry = (struct linux_dirent *)(buf + bpos);
|
||
|
+ dentry = (struct dirent64 *)(buf + bpos);
|
||
|
if (strcmp(dentry->d_name, ".") == 0
|
||
|
|| strcmp(dentry->d_name, "..") == 0)
|
||
|
goto skip; /* must skip '.' and '..' */
|