Loading drivers/vhost/net.c +5 −6 Original line number Original line Diff line number Diff line Loading @@ -519,13 +519,12 @@ static long vhost_net_set_backend(struct vhost_net *n, unsigned index, int fd) /* start polling new socket */ /* start polling new socket */ oldsock = vq->private_data; oldsock = vq->private_data; if (sock == oldsock) if (sock != oldsock){ goto done; vhost_net_disable_vq(n, vq); vhost_net_disable_vq(n, vq); rcu_assign_pointer(vq->private_data, sock); rcu_assign_pointer(vq->private_data, sock); vhost_net_enable_vq(n, vq); vhost_net_enable_vq(n, vq); done: } if (oldsock) { if (oldsock) { vhost_net_flush_vq(n, index); vhost_net_flush_vq(n, index); fput(oldsock->file); fput(oldsock->file); Loading Loading
drivers/vhost/net.c +5 −6 Original line number Original line Diff line number Diff line Loading @@ -519,13 +519,12 @@ static long vhost_net_set_backend(struct vhost_net *n, unsigned index, int fd) /* start polling new socket */ /* start polling new socket */ oldsock = vq->private_data; oldsock = vq->private_data; if (sock == oldsock) if (sock != oldsock){ goto done; vhost_net_disable_vq(n, vq); vhost_net_disable_vq(n, vq); rcu_assign_pointer(vq->private_data, sock); rcu_assign_pointer(vq->private_data, sock); vhost_net_enable_vq(n, vq); vhost_net_enable_vq(n, vq); done: } if (oldsock) { if (oldsock) { vhost_net_flush_vq(n, index); vhost_net_flush_vq(n, index); fput(oldsock->file); fput(oldsock->file); Loading