Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
LU-1517 ptlrpc: throw net error to ptlrpc for bulk
[fs/lustre-release.git]
/
lustre
/
ptlrpc
/
events.c
diff --git
a/lustre/ptlrpc/events.c
b/lustre/ptlrpc/events.c
index
c85ee23
..
55cc32e
100644
(file)
--- 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;