diff options
author | Matt Turner <mattst88@gentoo.org> | 2019-09-22 11:34:00 -0700 |
---|---|---|
committer | Matt Turner <mattst88@gentoo.org> | 2019-09-22 11:34:30 -0700 |
commit | e1c9516d14cfe0bf2a9a9b4023780704eed00ecd (patch) | |
tree | 26657e5feeba29e16fbd923105ddc00234f83d59 /net-fs/nfs-utils/files | |
parent | app-admin/puppet: add missing dep on dev-ruby/concurrent-ruby (diff) | |
download | gentoo-e1c9516d14cfe0bf2a9a9b4023780704eed00ecd.tar.gz gentoo-e1c9516d14cfe0bf2a9a9b4023780704eed00ecd.tar.bz2 gentoo-e1c9516d14cfe0bf2a9a9b4023780704eed00ecd.zip |
net-fs/nfs-utils: Add patch to fix largefile support
Closes: https://bugs.gentoo.org/695258
Signed-off-by: Matt Turner <mattst88@gentoo.org>
Diffstat (limited to 'net-fs/nfs-utils/files')
-rw-r--r-- | net-fs/nfs-utils/files/nfs-utils-2.4.1-Fix-include-order-between-config.h-and-stat.h.patch | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/net-fs/nfs-utils/files/nfs-utils-2.4.1-Fix-include-order-between-config.h-and-stat.h.patch b/net-fs/nfs-utils/files/nfs-utils-2.4.1-Fix-include-order-between-config.h-and-stat.h.patch new file mode 100644 index 000000000000..836a2af54078 --- /dev/null +++ b/net-fs/nfs-utils/files/nfs-utils-2.4.1-Fix-include-order-between-config.h-and-stat.h.patch @@ -0,0 +1,151 @@ +From 2fbc62e2a13fc22b6ae4910e295a2c10fb790486 Mon Sep 17 00:00:00 2001 +From: Zoltan Karcagi <zkr7432@gmail.com> +Date: Mon, 12 Aug 2019 13:27:16 -0400 +Subject: [PATCH] Fix include order between config.h and stat.h + +At least on Arch linux ARM, the definition of struct stat in stat.h depends +on __USE_FILE_OFFSET64. This symbol comes from config.h when defined, +therefore config.h must always be included before stat.h. Fix all +occurrences where the order is wrong by moving config.h to the top. + +This fixes the client side error "Stale file handle" when mounting from +a server running Arch Linux ARM. + +Signed-off-by: Zoltan Karcagi <zkr7432@gmail.com> +Signed-off-by: Steve Dickson <steved@redhat.com> +--- + support/misc/nfsd_path.c | 5 ++++- + support/misc/xstat.c | 5 ++++- + support/nfs/conffile.c | 8 +++++++- + utils/blkmapd/device-discovery.c | 8 ++++---- + utils/idmapd/idmapd.c | 8 ++++---- + 5 files changed, 23 insertions(+), 11 deletions(-) + +diff --git a/support/misc/nfsd_path.c b/support/misc/nfsd_path.c +index 84e48028..f078a668 100644 +--- a/support/misc/nfsd_path.c ++++ b/support/misc/nfsd_path.c +@@ -1,3 +1,7 @@ ++#ifdef HAVE_CONFIG_H ++#include <config.h> ++#endif ++ + #include <errno.h> + #include <sys/types.h> + #include <sys/stat.h> +@@ -5,7 +9,6 @@ + #include <stdlib.h> + #include <unistd.h> + +-#include "config.h" + #include "conffile.h" + #include "xmalloc.h" + #include "xlog.h" +diff --git a/support/misc/xstat.c b/support/misc/xstat.c +index fa047880..4c997eea 100644 +--- a/support/misc/xstat.c ++++ b/support/misc/xstat.c +@@ -1,3 +1,7 @@ ++#ifdef HAVE_CONFIG_H ++#include <config.h> ++#endif ++ + #include <errno.h> + #include <sys/types.h> + #include <fcntl.h> +@@ -5,7 +9,6 @@ + #include <sys/sysmacros.h> + #include <unistd.h> + +-#include "config.h" + #include "xstat.h" + + #ifdef HAVE_FSTATAT +diff --git a/support/nfs/conffile.c b/support/nfs/conffile.c +index b6400bec..6ba8a35c 100644 +--- a/support/nfs/conffile.c ++++ b/support/nfs/conffile.c +@@ -500,7 +500,7 @@ conf_readfile(const char *path) + + if ((stat (path, &sb) == 0) || (errno != ENOENT)) { + char *new_conf_addr = NULL; +- size_t sz = sb.st_size; ++ off_t sz; + int fd = open (path, O_RDONLY, 0); + + if (fd == -1) { +@@ -517,6 +517,11 @@ conf_readfile(const char *path) + + /* only after we have the lock, check the file size ready to read it */ + sz = lseek(fd, 0, SEEK_END); ++ if (sz < 0) { ++ xlog_warn("conf_readfile: unable to determine file size: %s", ++ strerror(errno)); ++ goto fail; ++ } + lseek(fd, 0, SEEK_SET); + + new_conf_addr = malloc(sz+1); +@@ -2162,6 +2167,7 @@ conf_write(const char *filename, const char *section, const char *arg, + ret = 0; + + cleanup: ++ flush_outqueue(&inqueue, NULL); + flush_outqueue(&outqueue, NULL); + + if (buff) +diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c +index e811703d..f5f9b10b 100644 +--- a/utils/blkmapd/device-discovery.c ++++ b/utils/blkmapd/device-discovery.c +@@ -26,6 +26,10 @@ + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif /* HAVE_CONFIG_H */ ++ + #include <sys/sysmacros.h> + #include <sys/types.h> + #include <sys/stat.h> +@@ -51,10 +55,6 @@ + #include <errno.h> + #include <libdevmapper.h> + +-#ifdef HAVE_CONFIG_H +-#include "config.h" +-#endif /* HAVE_CONFIG_H */ +- + #include "device-discovery.h" + #include "xcommon.h" + #include "nfslib.h" +diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c +index 62e37b8a..267acea5 100644 +--- a/utils/idmapd/idmapd.c ++++ b/utils/idmapd/idmapd.c +@@ -34,6 +34,10 @@ + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif /* HAVE_CONFIG_H */ ++ + #include <sys/types.h> + #include <sys/time.h> + #include <sys/inotify.h> +@@ -62,10 +66,6 @@ + #include <libgen.h> + #include <nfsidmap.h> + +-#ifdef HAVE_CONFIG_H +-#include "config.h" +-#endif /* HAVE_CONFIG_H */ +- + #include "xlog.h" + #include "conffile.h" + #include "queue.h" +-- +2.21.0 + |