> On Aug 19, 2016, at 09:41, Olga Kornievskaia <aglo@xxxxxxxxx> wrote: > > Hi Trond, Kinglong, > > What has happened to this patch? It was dropped, since it should be unnecessary. The delegreturn calls from nfs4_evict_inode() should now be synchronous, and other calls should normally grab a reference to the inode+super block. > > I believe the lack of this patch is causing the following problem on > the nfsv4.1 mount: > 1. client has delegations > 2. unmount is initiated which as Kinglong points out: > -- initiates asynchronous DELEGRETURNs. > -- then in nfs_free_server() it ends up killing ongoing rpc tasks with > DELEGRETURN. > -- nfs41_proc_sequence() takes a reference on the client structure. > However since the RPCs are killed there is no call to nfs_put_client() > which is done in the nfs4_sequence_release() task->tk_ops->rpc_release() is guaranteed to be run. > -- then in nfs_put_client() the reference count doesn't go down to 0 > and DESTROY_SESSION isn't called. The user's umount succeeds but we > still have the client structure with a session. -- 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