[PATCH] vhost-net: defer f->private_data until setup succeeds

Michael S. Tsirkin
Thu, 24 Dec 2009 06:06:50 -0000

On Tue, Dec 22, 2009 at 11:02:28AM -0800, Chris Wright
wrote:
> Trivial change, just for readability.  The filp is not installed on
> failure, so the current code is not incorrect (also vhost_dev_init
> currently has no failure case).  This just treats setting
f->private_data
> as something with global scope (sure, true only after fd_install).
>
> Signed-off-by: Chris Wright <chrisw at redhat.com>

Acked-by: Michael S. Tsirkin <mst at redhat.com>

> ---
>  drivers/vhost/net.c |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c
> index 22d5fef..0697ab2 100644
> --- a/drivers/vhost/net.c
> +++ b/drivers/vhost/net.c
> @@ -326,7 +326,6 @@ static int vhost_net_open(struct inode *inode, struct
file *f)
>  	int r;
>  	if (!n)
>  		return -ENOMEM;
> -	f->private_data = n;
>  	n->vqs[VHOST_NET_VQ_TX].handle_kick = handle_tx_kick;
>  	n->vqs[VHOST_NET_VQ_RX].handle_kick = handle_rx_kick;
>  	r = vhost_dev_init(&n->dev, n->vqs, VHOST_NET_VQ_MAX);
> @@ -338,6 +337,9 @@ static int vhost_net_open(struct inode *inode, struct
file *f)
>  	vhost_poll_init(n->poll + VHOST_NET_VQ_TX, handle_tx_net, POLLOUT);
>  	vhost_poll_init(n->poll + VHOST_NET_VQ_RX, handle_rx_net, POLLIN);
>  	n->tx_poll_state = VHOST_NET_POLL_DISABLED;
> +
> +	f->private_data = n;
> +
>  	return 0;
>  }
>