2004-09-20 22:35:38

by Bruce Allan

[permalink] [raw]
Subject: [PATCH][RESEND] nfs-utils-1.0.6 permission denied on mount after 'exportfs -u'

Neil,

Have you had a chance to look at this, yet?

Thanks,
Bruce Allan

-----Forwarded Message-----
From: Bruce Allan <[email protected]>
To: Neil Brown <[email protected]>
Cc: [email protected]
Subject: [PATCH] nfs-utils-1.0.6 permission denied on mount after 'exportfs -u'
Date: Thu, 26 Aug 2004 15:50:49 -0700

Hi Neil,

There is a problem with rpc.mountd after doing an 'exportfs -u' such as
in the following:

[server]# exportfs *:/foo
[client]# mount server:/foo /mnt
[client]# umount /mnt
[server]# exportfs -u *:/foo
[server]# exportfs client:/foo
[client]# mount server:/foo /mnt
mount: server:/foo failed, reason given by server: Permission denied

In the above situation, the static my_client doesn't get cleared as a
result of the unexporting. Since the client address is the same in both
mount requests it won't perform a new lookup and will continue to use
the previous hostname, i.e. "*". Unfortunately, the list of clients in
the exportlist no longer contains "*" for a hostname (only contains the
hostname "client") and will return a NULL pointer with a not_exported
error.

--- nfs-utils-1.0.6/utils/mountd/auth.c 2003-07-14 15:10:12.000000000 -0700
+++ nfs-utils-1.0.6-auth.c/utils/mountd/auth.c 2004-08-26 14:52:40.000000000 -0700
@@ -30,6 +30,8 @@ enum auth_error

static void auth_fixpath(char *path);
static char *export_file = NULL;
+static nfs_export my_exp;
+static nfs_client my_client;

extern int new_cache;

@@ -55,6 +57,7 @@ auth_reload()
last_modified = stb.st_mtime;

export_freeall();
+ memset(&my_client, 0, sizeof(nfs_client));
// export_read(export_file);
xtab_export_read();

@@ -69,8 +72,6 @@ auth_authenticate_internal(char *what, s
nfs_export *exp;

if (new_cache) {
- static nfs_export my_exp;
- static nfs_client my_client;
int i;
/* return static nfs_export with details filled in */
if (my_client.m_naddr != 1 ||

Regards,
---
Bruce Allan <[email protected]>
Software Engineer, Linux Technology Center
IBM Corporation, Beaverton OR
503-578-4187 IBM Tie-line 775-4187



-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM.
Deadline: Sept. 24. Go here: http://sf.net/ppc_contest.php
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs