[PATCH 2/2] vhost - cleanup

Jeff Dike
2010-03-04T21:10:54Z

commit 1191aa42193d030470dbd4ab17e4fb57772534ff
Author: Jeff Dike <jdike@localhost.localdomain>
Date: Thu Mar 4 14:51:20 2010 -0500

Delete a label and goto from vhost_net_set_backend

Inverting a test allows a label and goto to be eliminated.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>

diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c
index 4ada4b4..7abb883 100644
--- a/drivers/vhost/net.c
+++ b/drivers/vhost/net.c
@@ -518,13 +518,12 @@ static long vhost_net_set_backend(struct vhost_net *n, unsigned index, int fd)

/* start polling new socket */
oldsock = vq->private_data;
- if (sock == oldsock)
- goto done;
+ if (sock != oldsock){
+ vhost_net_disable_vq(n, vq);
+ rcu_assign_pointer(vq->private_data, sock);
+ vhost_net_enable_vq(n, vq);
+ }

- vhost_net_disable_vq(n, vq);
- rcu_assign_pointer(vq->private_data, sock);
- vhost_net_enable_vq(n, vq);
-done:
if (oldsock) {
vhost_net_flush_vq(n, index);
fput(oldsock->file);