Dear Bruce, I am sorry for replying so late. I will resend those patchs again. thanks, Kinglong Mee On Tue, Jan 28, 2014 at 7:08 AM, Dr Fields James Bruce <bfields@xxxxxxxxxxxx> wrote: > Apologies, I completely dropped this and now I've lost the thread of the > discussion. > > What is your most recent patchset? > > --b. > > On Fri, Jan 10, 2014 at 10:41:24AM +0800, Kinglong Mee wrote: >> On 01/10/2014 01:27 AM, Trond Myklebust wrote: >> > >> > On Jan 9, 2014, at 11:26, Dr Fields James Bruce <bfields@xxxxxxxxxxxx> wrote: >> > >> >> On Thu, Jan 09, 2014 at 06:33:10PM +0800, Kinglong Mee wrote: >> >>> Besides checking rpc_xprt out of xs_setup_bc_tcp, >> >>> increase it's reference (it's important). >> >> >> >> This sounds wrong to me: the presence of a backchannel can't prevent the >> >> client's connection from going away. Instead, when the connection dies, >> >> any associated backchannels should be immediately destroyed. >> > >> > Hi Bruce, >> > >> > The right way to deal with this is to have knfsd shut down the rpc_client >> > when it detects the TCP disconnection event. >> >> Yes, that's right. >> Knfsd has do it as you said. >> >> When getting xprt's status of XPT_CLOSE in svc_recv/svc_handle_xprt, >> knfsd will delete the xprt by svc_delete_xprt. >> >> In svc_delete_xprt, knfsd calls call_xpt_users to notify those users of the xprt. >> So, nfsd4_conn_lost will be called to free the connection. >> After freeing connection, nfsd4_probe_callback will update the callback for the client. >> And, the clp->cl_cb_client will be shutdown in nfsd4_process_cb_update. >> >> At last, all using of the xprt will be released. >> I have test it, that's OK. >> >> > The xprt->count shouldn't be an issue here: >> > it has nothing to do with the socket connection state. >> >> The xprt of backchannel, there are two references, >> 1. rpc_clnt >> 2. svc_xprt >> >> For rpc_clnt, initialize the xprt->count in xs_setup_bc_tcp, >> or increase it in create_backchannel_client, and, decrease in rpc_free_client. >> >> For svc_xprt, increase it in xs_setup_bc_tcp, and decrease in svc_xprt_free. >> >> thanks, >> Kinglong Mee >> -- 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