Commit dd757a31 authored by Nils Goroll's avatar Nils Goroll Committed by Geoff Simmons

ensure nexus reqs from tree have the esi_level == 0 worker

We pass on reqs from esi subrequests to the top request for delivery.
Doing so we need to give them the top requests's worker such that VDPs
requiring it be happy.
parent 8d1ec902
......@@ -835,8 +835,17 @@ worklist_push(struct req *req, struct bytes_tree *tree,
node = VSTAILQ_FIRST(work);
AN(node);
while (node) {
parent = node->parent;
next = VSTAILQ_NEXT(node, unpend);
if (parent != NULL) {
assert (parent->type == T_NEXUS);
if (parent->nexus.req->wrk == NULL)
parent->nexus.req->wrk = req->wrk;
else
assert (parent->nexus.req->wrk == req->wrk);
}
// not using assert_node: it needs locking
assert(node->state == ST_UNPENDING);
......@@ -861,7 +870,6 @@ worklist_push(struct req *req, struct bytes_tree *tree,
break;
if (VSTAILQ_NEXT(node, sibling) == NULL) {
parent = node->parent;
if (parent->parent == NULL)
(void) 0;
else if (parent->state < ST_CLOSED)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment