summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
f9d1ac5)
Start reconnect and resend if network error occures
for the bulk transfer.
Signed-off-by: Alexander Boyko <alexander_boyko@xyratex.com>
Change-Id: I0cf2ee1230a039336f081fbb520c1ce768882088
Xyratex-bug-id: MRP-523
Reviewed-on: http://review.whamcloud.com/4299
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Johann Lombardi <johann.lombardi@intel.com>
Reviewed-by: Cory Spitz <spitzcor@cray.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
{
struct ptlrpc_cb_id *cbid = ev->md.user_ptr;
struct ptlrpc_bulk_desc *desc = cbid->cbid_arg;
{
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 &&
ENTRY;
LASSERT ((desc->bd_type == BULK_PUT_SINK &&
ev->type, ev->status, desc);
cfs_spin_lock(&desc->bd_lock);
ev->type, ev->status, desc);
cfs_spin_lock(&desc->bd_lock);
LASSERT(desc->bd_network_rw);
desc->bd_network_rw = 0;
LASSERT(desc->bd_network_rw);
desc->bd_network_rw = 0;
desc->bd_success = 1;
desc->bd_nob_transferred = ev->mlength;
desc->bd_sender = ev->sender;
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 */
}
/* release the encrypted pages for write */
/* NB don't unlock till after wakeup; desc can disappear under us
* otherwise */
/* 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;
cfs_spin_unlock(&desc->bd_lock);
EXIT;