From: Neil Brown Date: Sun, 18 Mar 2007 23:22:22 +0000 (+1100) Subject: Make warning about host matching multiple exports more helpful. X-Git-Tag: nfs-utils-1-1-0-rc1~49 X-Git-Url: https://git.decadent.org.uk/gitweb/?a=commitdiff_plain;h=e3f2d2262fed12f0f6b77c5ac1c4072d82f1e754;p=nfs-utils.git Make warning about host matching multiple exports more helpful. 1/ only warn once per export, as it could get too noisy. 2/ make it a little clearer why this might be a problem. --- diff --git a/support/export/export.c b/support/export/export.c index a4b0788..74e1d1b 100644 --- a/support/export/export.c +++ b/support/export/export.c @@ -90,6 +90,7 @@ export_init(nfs_export *exp, nfs_client *clp, struct exportent *nep) exp->m_xtabent = 0; exp->m_mayexport = 0; exp->m_changed = 0; + exp->m_warned = 0; exp->m_client = clp; clp->m_count++; } @@ -115,6 +116,7 @@ export_dup(nfs_export *exp, struct hostent *hp) new->m_exported = 0; new->m_xtabent = 0; new->m_changed = 0; + new->m_warned = 0; export_add(new); return new; diff --git a/support/include/exportfs.h b/support/include/exportfs.h index 458611b..431b5ce 100644 --- a/support/include/exportfs.h +++ b/support/include/exportfs.h @@ -47,7 +47,9 @@ typedef struct mexport { int m_exported; /* known to knfsd. -1 means not sure */ int m_xtabent : 1, /* xtab entry exists */ m_mayexport: 1, /* derived from xtabbed */ - m_changed : 1; /* options (may) have changed */ + m_changed : 1, /* options (may) have changed */ + m_warned : 1; /* warned about multiple exports + * matching one client */ } nfs_export; extern nfs_client * clientlist[MCL_MAXTYPES]; diff --git a/utils/exportfs/exportfs.c b/utils/exportfs/exportfs.c index 1eca567..8c3f634 100644 --- a/utils/exportfs/exportfs.c +++ b/utils/exportfs/exportfs.c @@ -218,6 +218,7 @@ export_all(int verbose) exp->m_xtabent = 1; exp->m_mayexport = 1; exp->m_changed = 1; + exp->m_warned = 0; } } } @@ -274,6 +275,7 @@ exportfs(char *arg, char *options, int verbose) exp->m_xtabent = 1; exp->m_mayexport = 1; exp->m_changed = 1; + exp->m_warned = 0; if (hp) free (hp); } diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c index ed7fe35..5612a9e 100644 --- a/utils/mountd/cache.c +++ b/utils/mountd/cache.c @@ -520,10 +520,12 @@ void nfsd_export(FILE *f) if (!found) { found = exp; found_type = i; - } else if (found_type == i) { - xlog(L_WARNING, "%s exported to both %s and %s in %s", - path, exp->m_client->m_hostname, found->m_client->m_hostname, + } else if (found_type == i && found->m_warned == 0) { + xlog(L_WARNING, "%s exported to both %s and %s, " + "arbitrarily choosing options from first", + path, found->m_client->m_hostname, exp->m_client->m_hostname, dom); + found->m_warned = 1; } } }