|
@@ -227,6 +227,8 @@ static void xs_send(struct xb_req_data *req, struct xsd_sockmsg *msg)
|
|
req->state = xb_req_state_queued;
|
|
req->state = xb_req_state_queued;
|
|
init_waitqueue_head(&req->wq);
|
|
init_waitqueue_head(&req->wq);
|
|
|
|
|
|
|
|
+ /* Save the caller req_id and restore it later in the reply */
|
|
|
|
+ req->caller_req_id = req->msg.req_id;
|
|
req->msg.req_id = xs_request_enter(req);
|
|
req->msg.req_id = xs_request_enter(req);
|
|
|
|
|
|
mutex_lock(&xb_write_mutex);
|
|
mutex_lock(&xb_write_mutex);
|
|
@@ -310,6 +312,7 @@ static void *xs_talkv(struct xenbus_transaction t,
|
|
req->num_vecs = num_vecs;
|
|
req->num_vecs = num_vecs;
|
|
req->cb = xs_wake_up;
|
|
req->cb = xs_wake_up;
|
|
|
|
|
|
|
|
+ msg.req_id = 0;
|
|
msg.tx_id = t.id;
|
|
msg.tx_id = t.id;
|
|
msg.type = type;
|
|
msg.type = type;
|
|
msg.len = 0;
|
|
msg.len = 0;
|