diff options
author | Venkateswararao Jujjuri (JV) <jvrao@linux.vnet.ibm.com> | 2010-09-30 03:33:41 +0200 |
---|---|---|
committer | Eric Van Hensbergen <ericvh@gmail.com> | 2010-10-28 16:08:48 +0200 |
commit | 52f44e0d08ff1a065bf06615483c608163575cb1 (patch) | |
tree | 44292212cecafac6ed870812b882b9af545bdaa6 /net/9p/client.c | |
parent | [net/9p]Serialize virtqueue operations to make VirtIO transport SMP safe. (diff) | |
download | linux-52f44e0d08ff1a065bf06615483c608163575cb1.tar.xz linux-52f44e0d08ff1a065bf06615483c608163575cb1.zip |
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, ...) err = c->trans_mod->request(c, req); if (err < 0) { - c->status = Disconnected; + if (err != -ERESTARTSYS) + c->status = Disconnected; goto reterr; } |