From: Steve Dickson Date: Tue, 1 Dec 2009 12:20:43 +0000 (-0500) Subject: exports: turn on pseudo exports X-Git-Tag: nfs-utils-1-2-2-rc6~13 X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=commitdiff_plain;h=b25694320f2bdd79de82f2003209b8229eafff36 exports: turn on pseudo exports If a pseudo root is not defined in the export file, the v4root_needed global variable will be set, signaling v4root_set() create the dynamic pseudo root. Signed-off-by: Steve Dickson --- diff --git a/support/export/xtab.c b/support/export/xtab.c index 3b1dcce..2a43193 100644 --- a/support/export/xtab.c +++ b/support/export/xtab.c @@ -19,7 +19,9 @@ #include "exportfs.h" #include "xio.h" #include "xlog.h" +#include "v4root.h" +int v4root_needed; static void cond_rename(char *newfile, char *oldfile); static int @@ -36,6 +38,8 @@ xtab_read(char *xtab, char *lockfn, int is_export) if ((lockid = xflock(lockfn, "r")) < 0) return 0; setexportent(xtab, "r"); + if (is_export == 1) + v4root_needed = 1; while ((xp = getexportent(is_export==0, 0)) != NULL) { if (!(exp = export_lookup(xp->e_hostname, xp->e_path, is_export != 1)) && !(exp = export_create(xp, is_export!=1))) { @@ -48,6 +52,8 @@ xtab_read(char *xtab, char *lockfn, int is_export) case 1: exp->m_xtabent = 1; exp->m_mayexport = 1; + if ((xp->e_flags & NFSEXP_FSID) && xp->e_fsid == 0) + v4root_needed = 0; break; case 2: exp->m_exported = -1;/* may be exported */ diff --git a/utils/mountd/auth.c b/utils/mountd/auth.c index 5a7ff8c..2ed80bc 100644 --- a/utils/mountd/auth.c +++ b/utils/mountd/auth.c @@ -20,6 +20,7 @@ #include "exportfs.h" #include "mountd.h" #include "xmalloc.h" +#include "v4root.h" enum auth_error { @@ -102,6 +103,8 @@ auth_reload() memset(&my_client, 0, sizeof(my_client)); xtab_export_read(); check_useipaddr(); + v4root_set(); + ++counter; return counter;