On Jan 18, 2013, at 4:28 PM, Ben Greear <greearb@xxxxxxxxxxxxxxx> wrote: > Any chance the STALE_CLIENTID case needs a 'break'? I don't think so. LEASE_CONFIRM is set, and we want to wake the state renewal thread. > > Twice I've seen kernel crashes after the nfs40_walk_client_list > failed (though code comments say it should never fail). nfs40_walk_client_list() is looking for an nfs_client that is supposed to already be in the nfs_client list. If the search fails, that's a bug. Eyeball the contents of your nfs_client list. You should find an appropriate nfs_client in there, and then figure out why the search doesn't find it. > int nfs40_discover_server_trunking(struct nfs_client *clp, > struct nfs_client **result, > struct rpc_cred *cred) > { > struct nfs4_setclientid_res clid = { > .clientid = clp->cl_clientid, > .confirm = clp->cl_confirm, > }; > struct nfs_net *nn = net_generic(clp->cl_net, nfs_net_id); > unsigned short port; > int status; > > port = nn->nfs_callback_tcpport; > if (clp->cl_addr.ss_family == AF_INET6) > port = nn->nfs_callback_tcpport6; > > status = nfs4_proc_setclientid(clp, NFS4_CALLBACK, port, cred, &clid); > if (status != 0) > goto out; > clp->cl_clientid = clid.clientid; > clp->cl_confirm = clid.confirm; > > status = nfs40_walk_client_list(clp, result, cred); > switch (status) { > case -NFS4ERR_STALE_CLIENTID: > set_bit(NFS4CLNT_LEASE_CONFIRM, &clp->cl_state); > case 0: > /* Sustain the lease, even if it's empty. If the clientid4 > * goes stale it's of no use for trunking discovery. */ > nfs4_schedule_state_renewal(*result); > break; > } > > out: > return status; > } > > -- > Ben Greear <greearb@xxxxxxxxxxxxxxx> > Candela Technologies Inc http://www.candelatech.com > > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Chuck Lever chuck[dot]lever[at]oracle[dot]com -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html