[net/9p] Don't re-pin pages on retrying virtqueue_add_buf().
authorVenkateswararao Jujjuri (JV) <jvrao@linux.vnet.ibm.com>
Mon, 14 Mar 2011 21:22:41 +0000 (14:22 -0700)
committerEric Van Hensbergen <ericvh@gmail.com>
Tue, 22 Mar 2011 21:32:48 +0000 (16:32 -0500)
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
net/9p/trans_virtio.c

index cb98af9367ab356e0299f5e1c89123741628e19f..c6e1ae2fb9268a3788570065ff49a9dd23014f22 100644 (file)
@@ -262,7 +262,6 @@ p9_virtio_request(struct p9_client *client, struct p9_req_t *req)
 
        P9_DPRINTK(P9_DEBUG_TRANS, "9p debug: virtio request\n");
 
-req_retry:
        req->status = REQ_STATUS_SENT;
 
        if (req->tc->pbuf_size && (req->tc->pubuf && P9_IS_USER_CONTEXT)) {
@@ -295,6 +294,7 @@ req_retry:
                }
        }
 
+req_retry_pinned:
        spin_lock_irqsave(&chan->lock, flags);
 
        /* Handle out VirtIO ring buffers */
@@ -355,7 +355,7 @@ req_retry:
                                return err;
 
                        P9_DPRINTK(P9_DEBUG_TRANS, "9p:Retry virtio request\n");
-                       goto req_retry;
+                       goto req_retry_pinned;
                } else {
                        spin_unlock_irqrestore(&chan->lock, flags);
                        P9_DPRINTK(P9_DEBUG_TRANS,