diff options
author | Venkateswararao Jujjuri (JV) <jvrao@linux.vnet.ibm.com> | 2010-09-29 21:33:41 -0400 |
---|---|---|
committer | Eric Van Hensbergen <ericvh@gmail.com> | 2010-10-28 10:08:48 -0400 |
commit | 52f44e0d08ff1a065bf06615483c608163575cb1 (patch) | |
tree | 44292212cecafac6ed870812b882b9af545bdaa6 /net/9p/client.c | |
parent | 419b39561e698d73a42f8010655d22e0134486da (diff) |
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>
Diffstat (limited to 'net/9p/client.c')
-rw-r--r-- | net/9p/client.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/9p/client.c b/net/9p/client.c index 2bc99e9031e7..bc7b03537699 100644 --- a/net/9p/client.c +++ b/net/9p/client.c | |||
@@ -583,7 +583,8 @@ p9_client_rpc(struct p9_client *c, int8_t type, const char *fmt, ...) | |||
583 | 583 | ||
584 | err = c->trans_mod->request(c, req); | 584 | err = c->trans_mod->request(c, req); |
585 | if (err < 0) { | 585 | if (err < 0) { |
586 | c->status = Disconnected; | 586 | if (err != -ERESTARTSYS) |
587 | c->status = Disconnected; | ||
587 | goto reterr; | 588 | goto reterr; |
588 | } | 589 | } |
589 | 590 | ||