From: Bruce Allan Subject: [PATCH][RESEND] nfs-utils-1.0.6 permission denied on mount after 'exportfs -u' Date: Mon, 20 Sep 2004 15:34:39 -0700 Sender: nfs-admin@lists.sourceforge.net Message-ID: <1095719679.4794.2.camel@dyn319492.beaverton.ibm.com> Mime-Version: 1.0 Content-Type: text/plain Cc: nfs@lists.sourceforge.net Return-path: Received: from sc8-sf-mx1-b.sourceforge.net ([10.3.1.11] helo=sc8-sf-mx1.sourceforge.net) by sc8-sf-list2.sourceforge.net with esmtp (Exim 4.30) id 1C9Wl0-0003v3-Rg for nfs@lists.sourceforge.net; Mon, 20 Sep 2004 15:35:38 -0700 Received: from e32.co.us.ibm.com ([32.97.110.130]) by sc8-sf-mx1.sourceforge.net with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.41) id 1C9Wkz-0000Gd-Le for nfs@lists.sourceforge.net; Mon, 20 Sep 2004 15:35:38 -0700 To: Neil Brown Errors-To: nfs-admin@lists.sourceforge.net List-Unsubscribe: , List-Id: Discussion of NFS under Linux development, interoperability, and testing. List-Post: List-Help: List-Subscribe: , List-Archive: Neil, Have you had a chance to look at this, yet? Thanks, Bruce Allan -----Forwarded Message----- From: Bruce Allan To: Neil Brown Cc: nfs@lists.sf.net 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 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 - NFS@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs