From d9994824f6773c7515f9536b8b1d6e0d448fcb7b Mon Sep 17 00:00:00 2001 From: Jeff Dike Date: Thu, 4 Mar 2010 16:10:14 -0500 Subject: [PATCH] --- yaml --- r: 202649 b: refs/heads/master c: dd1f4078f0d2de74a308f00a2dffbd550cfba59f h: refs/heads/master i: 202647: 9c5d7d3b29d3009e44b8a06634a3af483c6f67d2 v: v3 --- [refs] | 2 +- trunk/drivers/vhost/net.c | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 3024de41c33a..f74034c07d20 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 373a83a6997bfdaf767f6a65fc5cc0054b246984 +refs/heads/master: dd1f4078f0d2de74a308f00a2dffbd550cfba59f diff --git a/trunk/drivers/vhost/net.c b/trunk/drivers/vhost/net.c index cd36f5ff2255..0868569d7124 100644 --- a/trunk/drivers/vhost/net.c +++ b/trunk/drivers/vhost/net.c @@ -519,13 +519,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);