1/ only warn once per export, as it could get too noisy.
2/ make it a little clearer why this might be a problem.
exp->m_xtabent = 0;
exp->m_mayexport = 0;
exp->m_changed = 0;
exp->m_xtabent = 0;
exp->m_mayexport = 0;
exp->m_changed = 0;
exp->m_client = clp;
clp->m_count++;
}
exp->m_client = clp;
clp->m_count++;
}
new->m_exported = 0;
new->m_xtabent = 0;
new->m_changed = 0;
new->m_exported = 0;
new->m_xtabent = 0;
new->m_changed = 0;
export_add(new);
return new;
export_add(new);
return new;
int m_exported; /* known to knfsd. -1 means not sure */
int m_xtabent : 1, /* xtab entry exists */
m_mayexport: 1, /* derived from xtabbed */
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];
} nfs_export;
extern nfs_client * clientlist[MCL_MAXTYPES];
exp->m_xtabent = 1;
exp->m_mayexport = 1;
exp->m_changed = 1;
exp->m_xtabent = 1;
exp->m_mayexport = 1;
exp->m_changed = 1;
exp->m_xtabent = 1;
exp->m_mayexport = 1;
exp->m_changed = 1;
exp->m_xtabent = 1;
exp->m_mayexport = 1;
exp->m_changed = 1;
if (!found) {
found = exp;
found_type = i;
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,