nfs-ganesha/nfs-ganesha-2.0.0-dirent.patch

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 '..' */