diff options
author | Venkateswararao Jujjuri (JV) <jvrao@linux.vnet.ibm.com> | 2010-09-29 18:33:41 -0700 |
---|---|---|
committer | Eric Van Hensbergen <ericvh@gmail.com> | 2010-10-28 09:08:48 -0500 |
commit | 52f44e0d08ff1a065bf06615483c608163575cb1 (patch) | |
tree | 44292212cecafac6ed870812b882b9af545bdaa6 /net/9p/client.c | |
parent | 419b39561e698d73a42f8010655d22e0134486da (diff) | |
download | op-kernel-dev-52f44e0d08ff1a065bf06615483c608163575cb1.zip op-kernel-dev-52f44e0d08ff1a065bf06615483c608163575cb1.tar.gz |
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 2bc99e9..bc7b035 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, ...) err = c->trans_mod->request(c, req); if (err < 0) { - c->status = Disconnected; + if (err != -ERESTARTSYS) + c->status = Disconnected; goto reterr; } |