On Mon, 2008-05-19 at 13:51 +1000, Peter Leckie wrote: > Drain both the sending and resend queues on disconnect. > This prevents the client from getting it's self into a > dead state when the server disconnects us. > > Signed-off-by: Peter Leckie <pleckie@xxxxxxxxxxxxxxxxx> > Reviewed-by: Greg Banks <gnb@xxxxxxxxxxxxxxxxx> > X-Sgi-Pv: 971446 > <http://bugworks/query.cgi/971446>--- > Index: linux-2.6.25.3/net/sunrpc/xprt.c > =================================================================== > --- linux-2.6.25.3.orig/net/sunrpc/xprt.c > +++ linux-2.6.25.3/net/sunrpc/xprt.c > @@ -586,6 +586,8 @@ void xprt_disconnect_done(struct rpc_xpr > spin_lock_bh(&xprt->transport_lock); > xprt_clear_connected(xprt); > xprt_wake_pending_tasks(xprt, -ENOTCONN); > + rpc_wake_up_status(&xprt->resend, -ENOTCONN); > + rpc_wake_up_status(&xprt->sending, -ENOTCONN); > spin_unlock_bh(&xprt->transport_lock); > } > EXPORT_SYMBOL_GPL(xprt_disconnect_done); What kind of a deadlock? The tasks on these queues should be waiting for the XPRT_LOCKED bit. Why would the change in connection status change anything to that? Trond -- 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