116 lines
3.4 KiB
Diff
116 lines
3.4 KiB
Diff
From ff4668dc7465d3c7bbe36e733206465968bcc2b2 Mon Sep 17 00:00:00 2001
|
|
From: huyan <hu.huyan@huawei.com>
|
|
Date: Sat, 16 Mar 2019 15:20:16 +0800
|
|
Subject: [PATCH] backport finish port of junction support to nfs-utils
|
|
|
|
---
|
|
configure.ac | 8 +++++++-
|
|
utils/mountd/cache.c | 18 +++++++++---------
|
|
utils/nfsref/Makefile.am | 2 --
|
|
3 files changed, 16 insertions(+), 12 deletions(-)
|
|
|
|
diff --git a/configure.ac b/configure.ac
|
|
index 87067f0..228fe7f 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -185,7 +185,13 @@ AC_ARG_ENABLE(junction,
|
|
[enable support for NFS junctions @<:@default=no@:>@])],
|
|
enable_junction=$enableval,
|
|
enable_junction=no)
|
|
-AM_CONDITIONAL(CONFIG_JUNCTION, [test "$enable_junction" = "yes" ])
|
|
+ if test "$enable_junction" = yes; then
|
|
+ AC_DEFINE(HAVE_JUNCTION_SUPPORT, 1,
|
|
+ [Define this if you want junction support compiled in])
|
|
+ else
|
|
+ enable_junction=
|
|
+ fi
|
|
+ AM_CONDITIONAL(CONFIG_JUNCTION, [test "$enable_junction" = "yes" ])
|
|
|
|
AC_ARG_ENABLE(tirpc,
|
|
[AC_HELP_STRING([--disable-tirpc],
|
|
diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
|
|
index 6f42512..21aa4d2 100644
|
|
--- a/utils/mountd/cache.c
|
|
+++ b/utils/mountd/cache.c
|
|
@@ -976,8 +976,9 @@ lookup_export(char *dom, char *path, struct addrinfo *ai)
|
|
return found;
|
|
}
|
|
|
|
-#ifdef CONFIG_JUNCTION
|
|
+#ifdef HAVE_JUNCTION_SUPPORT
|
|
|
|
+#include <libxml/parser.h>
|
|
#include "junction.h"
|
|
|
|
struct nfs_fsloc_set {
|
|
@@ -1084,8 +1085,7 @@ static bool locations_to_fslocdata(struct nfs_fsloc_set *locations,
|
|
*ttl = 0;
|
|
|
|
for (;;) {
|
|
- enum jp_status status;
|
|
- int len;
|
|
+ int len, status;
|
|
|
|
status = get_next_location(locations, &server,
|
|
&rootpath, ttl);
|
|
@@ -1219,7 +1219,7 @@ nfs_get_basic_junction(const char *junct_path, struct nfs_fsloc_set **locset)
|
|
return EINVAL;
|
|
}
|
|
|
|
- locset->ns_current = locset->ns_list;
|
|
+ new->ns_current = new->ns_list;
|
|
new->ns_ttl = 300;
|
|
*locset = new;
|
|
return 0;
|
|
@@ -1242,7 +1242,7 @@ static struct exportent *lookup_junction(char *dom, const char *pathname,
|
|
status = nfs_get_basic_junction(pathname, &locations);
|
|
switch (status) {
|
|
xlog(L_WARNING, "Dangling junction %s: %s",
|
|
- pathname, strerro(status));
|
|
+ pathname, strerror(status));
|
|
goto out;
|
|
}
|
|
|
|
@@ -1252,8 +1252,8 @@ static struct exportent *lookup_junction(char *dom, const char *pathname,
|
|
|
|
exp = locations_to_export(locations, pathname, parent);
|
|
|
|
- nfs_free_locations(locset->ns_list);
|
|
- free(locset);
|
|
+ nfs_free_locations(locations->ns_list);
|
|
+ free(locations);
|
|
|
|
out:
|
|
xmlCleanupParser();
|
|
@@ -1273,7 +1273,7 @@ static void lookup_nonexport(int f, char *buf, int buflen, char *dom, char *path
|
|
free(eep);
|
|
}
|
|
|
|
-#else /* !CONFIG_JUNCTION */
|
|
+#else /* !HAVE_JUNCTION_SUPPORT */
|
|
|
|
static void lookup_nonexport(int f, char *buf, int buflen, char *dom, char *path,
|
|
struct addrinfo *UNUSED(ai))
|
|
@@ -1281,7 +1281,7 @@ static void lookup_nonexport(int f, char *buf, int buflen, char *dom, char *path
|
|
dump_to_cache(f, buf, buflen, dom, path, NULL, 0);
|
|
}
|
|
|
|
-#endif /* !CONFIG_JUNCTION */
|
|
+#endif /* !HAVE_JUNCTION_SUPPORT */
|
|
|
|
static void nfsd_export(int f)
|
|
{
|
|
diff --git a/utils/nfsref/Makefile.am b/utils/nfsref/Makefile.am
|
|
index 2b2bb53..44edc83 100644
|
|
--- a/utils/nfsref/Makefile.am
|
|
+++ b/utils/nfsref/Makefile.am
|
|
@@ -35,5 +35,3 @@ man8_MANS = nfsref.man
|
|
|
|
MAINTAINERCLEANFILES = Makefile.in
|
|
|
|
-AM_CPPFLAGS = -I. -I../../support/include
|
|
-##AM_LDFLAGS = -Wl,--as-needed
|
|
--
|
|
1.8.3.1
|
|
|