diff options
author | neilbrown <neilbrown> | 2003-08-04 03:14:23 +0000 |
---|---|---|
committer | neilbrown <neilbrown> | 2003-08-04 03:14:23 +0000 |
commit | 18fc7a86a2a1213762cc4107565903127efadafc (patch) | |
tree | 936419df6ee1563d17f0d9a6a57006c754fb49b9 /utils/mountd/mountd.c | |
parent | 9e07f5fc946f63e32028f860566c34432059c179 (diff) | |
download | nfs-utils-18fc7a86a2a1213762cc4107565903127efadafc.tar.gz nfs-utils-18fc7a86a2a1213762cc4107565903127efadafc.tar.xz nfs-utils-18fc7a86a2a1213762cc4107565903127efadafc.zip |
Open channel files O_WRONLY, and improve mountlist support.
Diffstat (limited to 'utils/mountd/mountd.c')
-rw-r--r-- | utils/mountd/mountd.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/utils/mountd/mountd.c b/utils/mountd/mountd.c index d0d8103..6dbd224 100644 --- a/utils/mountd/mountd.c +++ b/utils/mountd/mountd.c @@ -117,8 +117,14 @@ mount_umnt_1_svc(struct svc_req *rqstp, dirpath *argp, void *resp) if (!(exp = auth_authenticate("unmount", sin, p))) { return 1; } - mountlist_del(exp, p); - export_reset (exp); + 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); + export_reset (exp); + } return 1; } @@ -322,7 +328,7 @@ get_rootfh(struct svc_req *rqstp, dirpath *path, int *error, int v3) stb.st_dev, stb.st_ino); } if (fh != NULL) { - mountlist_add(exp, p); + mountlist_add(exp->m_client->m_hostname, p); *error = NFS_OK; export_reset (exp); return fh; |