From 3d7faa0249332e23a2dc2e3e78020ed6bc66036a Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Tue, 1 May 2012 15:20:31 -0400 Subject: [PATCH 1/1] auth_authenticate_newcache: prefer non-V4ROOT export over V4ROOT exports Currently auth_authenticate_internal finds an export and if it is a V4ROOT export, it reports that there is no match. Unlike lookup_export() it doesn't keep looking for an acceptable export. So remove the test from auth_authenticate_internal(), and add it to auth_authenticate_newcache(), where the search can be allowed to continue. Signed-off-by: NeilBrown Signed-off-by: Steve Dickson --- utils/mountd/auth.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/utils/mountd/auth.c b/utils/mountd/auth.c index ccc849a..3843756 100644 --- a/utils/mountd/auth.c +++ b/utils/mountd/auth.c @@ -159,6 +159,9 @@ auth_authenticate_newcache(const struct sockaddr *caller, continue; if (use_ipaddr && !client_check(exp->m_client, ai)) continue; + if (exp->m_export.e_flags & NFSEXP_V4ROOT) + /* not acceptable for v[23] export */ + continue; break; } *error = not_exported; @@ -187,10 +190,6 @@ auth_authenticate_internal(const struct sockaddr *caller, const char *path, return NULL; } } - if (exp->m_export.e_flags & NFSEXP_V4ROOT) { - *error = no_entry; - return NULL; - } if (!(exp->m_export.e_flags & NFSEXP_INSECURE_PORT) && nfs_get_port(caller) >= IPPORT_RESERVED) { *error = illegal_port; -- 2.39.2