net/9p: Add waitq to VirtIO transport.

If there is not enough space for the PDU on the VirtIO ring, current
code returns -EIO propagating the error to user.

This patch introduced a wqit_queue on the channel, and lets the process
wait on this queue until VirtIO ring frees up.

Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
This commit is contained in:
Venkateswararao Jujjuri (JV)
2010-09-29 18:33:41 -07:00
committed by Eric Van Hensbergen
parent 419b39561e
commit 52f44e0d08
2 changed files with 41 additions and 8 deletions

View File

@@ -583,7 +583,8 @@ p9_client_rpc(struct p9_client *c, int8_t type, const char *fmt, ...)
err = c->trans_mod->request(c, req);
if (err < 0) {
c->status = Disconnected;
if (err != -ERESTARTSYS)
c->status = Disconnected;
goto reterr;
}