At 08:48 PM 5/19/2008, Peter Leckie wrote: >Well xprt_disconnect_done() is no more heavy weight then the >rpcrdma_conn_func() >equivalent it simply clears the connected bit and labels the queues as >not connected. >The reason for calling xprt_disconnect_done() is to make a single >disconnect function. Aha - I agree and now realize that I misunderstood because your patch calls xprt_disconnect(), which (IIRC) is an older heavier function that's no longer in sunrpc. Is this the right patch then? >The reason this change is needed is to allow the send and resend queues >to be drained on disconnect, patch 02 could have been changed to also >drain the these queues from rpcrdma_conn_func() however I think this is >a cleaner fix. Sounds good - pending better understanding of which fix is right. :-) ... >>> Index: linux-2.6.25.3/net/sunrpc/xprtrdma/rpc_rdma.c >>> =================================================================== >>> --- linux-2.6.25.3.orig/net/sunrpc/xprtrdma/rpc_rdma.c >>> +++ linux-2.6.25.3/net/sunrpc/xprtrdma/rpc_rdma.c >>> @@ -680,15 +680,13 @@ rpcrdma_conn_func(struct rpcrdma_ep *ep) ... >>> + spin_unlock_bh(&xprt->transport_lock); >>> + } else >>> + xprt_disconnect(xprt); >>> } >>> Tom. -- 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