summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--utils/mountd/cache.c9
-rw-r--r--utils/mountd/mountd.c17
2 files changed, 8 insertions, 18 deletions
diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
index c57d3b0..726b98f 100644
--- a/utils/mountd/cache.c
+++ b/utils/mountd/cache.c
@@ -83,9 +83,6 @@ void auth_unix_ip(FILE *f)
qword_print(f, *client?client:"DEFAULT");
qword_eol(f);
- if (client && strcmp(ipaddr, client))
- mountlist_add(ipaddr, *client?client:"DEFAULT");
-
if (client) free(client);
}
@@ -295,7 +292,6 @@ void nfsd_export(FILE *f)
qword_printint(f, found->m_export.e_anonuid);
qword_printint(f, found->m_export.e_anongid);
qword_printint(f, found->m_export.e_fsid);
- mountlist_add(dom, path);
}
qword_eol(f);
out:
@@ -373,8 +369,6 @@ void cache_export_ent(char *domain, struct exportent *exp)
qword_eol(f);
fclose(f);
-
- mountlist_add(domain, exp->e_path);
}
void cache_export(nfs_export *exp)
@@ -393,9 +387,6 @@ void cache_export(nfs_export *exp)
fclose(f);
- if (strcmp(inet_ntoa(exp->m_client->m_addrlist[0]), exp->m_client->m_hostname))
- mountlist_add(inet_ntoa(exp->m_client->m_addrlist[0]), exp->m_client->m_hostname);
-
cache_export_ent(exp->m_client->m_hostname, &exp->m_export);
}
diff --git a/utils/mountd/mountd.c b/utils/mountd/mountd.c
index f40d367..e151fa2 100644
--- a/utils/mountd/mountd.c
+++ b/utils/mountd/mountd.c
@@ -225,14 +225,11 @@ mount_umnt_1_svc(struct svc_req *rqstp, dirpath *argp, void *resp)
if (!(exp = auth_authenticate("unmount", sin, p))) {
return 1;
}
- if (new_cache) {
- if (strcmp(inet_ntoa(exp->m_client->m_addrlist[0]), exp->m_client->m_hostname))
- mountlist_del(inet_ntoa(exp->m_client->m_addrlist[0]), exp->m_client->m_hostname);
- mountlist_del(exp->m_client->m_hostname, p);
- } else {
- mountlist_del(exp->m_client->m_hostname, p);
+
+ if (!new_cache)
export_reset (exp);
- }
+
+ mountlist_del(inet_ntoa(sin->sin_addr), p);
return 1;
}
@@ -421,8 +418,10 @@ get_rootfh(struct svc_req *rqstp, dirpath *path, mountstat3 *error, int v3)
fh = cache_get_filehandle(exp, v3?64:32, p);
if (fh == NULL)
*error = NFSERR_ACCES;
- else
+ else {
*error = NFS_OK;
+ mountlist_add(inet_ntoa(sin->sin_addr), p);
+ }
return fh;
} else {
struct nfs_fh_len *fh;
@@ -443,7 +442,7 @@ get_rootfh(struct svc_req *rqstp, dirpath *path, mountstat3 *error, int v3)
stb.st_dev, stb.st_ino);
}
if (fh != NULL) {
- mountlist_add(exp->m_client->m_hostname, p);
+ mountlist_add(inet_ntoa(sin->sin_addr), p);
*error = NFS_OK;
export_reset (exp);
return fh;