On Mon, 2012-06-25 at 16:47 -0400, Chuck Lever wrote: > Commit 2a6ee6aa "NFSv4: Clean up the error handling for > nfs4_reclaim_lease" May 25, 2012 appears to have changed the error > value returned by nfs4_reclaim_lease() if rpc.gssd fails to create > a machine credential (either due to a local error or a problem on > the server). It is _not_ an error to be mounting without machine credentials. > In this case, nfs4_proc_setclientid() returns -EACCES. Before > 2a6ee6aa, nfs4_reclaim_lease() converted this to -EAGAIN. Now it > returns zero. The state manager assumes all is well, nfs_client > initialization then proceeds in process context until it oopses while > trying to set up the mount's nfs_server. The PURGE_STATE and/or LEASE_EXPIRED flags should still be set if we exit via nfs4_handle_reclaim_lease_error. The zero error return is there in order to ensure that the state manager thread loops and retries instead of just aborting. This patch makes it impossible to run without machine creds because you circumvent the nfs4_clear_machine_cred()+retry case. Why does setting up the nfs_server depend on a successful setclientid call anyway in the case of minor version 0? -- Trond Myklebust Linux NFS client maintainer NetApp Trond.Myklebust@xxxxxxxxxx www.netapp.com ��.n��������+%������w��{.n�����{��w���jg��������ݢj����G�������j:+v���w�m������w�������h�����٥