From: Alexander.Boyko Date: Mon, 17 Sep 2012 13:48:59 +0000 (+0400) Subject: LU-1517 ptlrpc: throw net error to ptlrpc for bulk X-Git-Tag: 2.3.57~46 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=185473cd6458f144ab512176c71beb85609b5ed9 LU-1517 ptlrpc: throw net error to ptlrpc for bulk Start reconnect and resend if network error occures for the bulk transfer. Signed-off-by: Alexander Boyko Change-Id: I0cf2ee1230a039336f081fbb520c1ce768882088 Xyratex-bug-id: MRP-523 Reviewed-on: http://review.whamcloud.com/4299 Tested-by: Hudson Tested-by: Maloo Reviewed-by: Johann Lombardi Reviewed-by: Cory Spitz Reviewed-by: Oleg Drokin --- diff --git a/lustre/ptlrpc/events.c b/lustre/ptlrpc/events.c index c85ee23..55cc32e 100644 --- a/lustre/ptlrpc/events.c +++ b/lustre/ptlrpc/events.c @@ -178,6 +178,7 @@ void client_bulk_callback (lnet_event_t *ev) { struct ptlrpc_cb_id *cbid = ev->md.user_ptr; struct ptlrpc_bulk_desc *desc = cbid->cbid_arg; + struct ptlrpc_request *req; ENTRY; LASSERT ((desc->bd_type == BULK_PUT_SINK && @@ -198,7 +199,7 @@ void client_bulk_callback (lnet_event_t *ev) ev->type, ev->status, desc); cfs_spin_lock(&desc->bd_lock); - + req = desc->bd_req; LASSERT(desc->bd_network_rw); desc->bd_network_rw = 0; @@ -206,6 +207,11 @@ void client_bulk_callback (lnet_event_t *ev) desc->bd_success = 1; desc->bd_nob_transferred = ev->mlength; desc->bd_sender = ev->sender; + } else { + /* start reconnect and resend if network error hit */ + cfs_spin_lock(&req->rq_lock); + req->rq_net_err = 1; + cfs_spin_unlock(&req->rq_lock); } /* release the encrypted pages for write */ @@ -214,7 +220,7 @@ void client_bulk_callback (lnet_event_t *ev) /* NB don't unlock till after wakeup; desc can disappear under us * otherwise */ - ptlrpc_client_wake_req(desc->bd_req); + ptlrpc_client_wake_req(req); cfs_spin_unlock(&desc->bd_lock); EXIT;