On Sat, 2012-05-26 at 15:43 -0400, Chuck Lever wrote: > On May 26, 2012, at 2:39 PM, Trond Myklebust wrote: > > > Ensure that we destroy our lease on last unmount > > So why aren't we using DESTROY_CLIENTID in nfs4_reset_all_state() ? They are different operations. In nfs4_reset_all_state we're declaring a client reboot: this means that we want the server to release all old state associated with this client id on the server because we're trying to establish a new client id. DESTROY_CLIENTID is there in order to destroy a client id that is no longer in use. According to Section 2.4.2 of RFC5661 that means that it "cannot be used if there are sessions associated with the client ID, or state with an unexpired lease". In fact the server is required to reject our DESTROY_CLIENTID call if it thinks we still hold state. So while we could possibly call DESTROY_CLIENTID after declaring the client reboot (but what would be the point?), we can't use it as a substitute for doing so in nfs4_reset_all_state... -- 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�����٥