Il 12/03/2013 03:42, Asias He ha scritto:
> This helper is useful to check if vs->vs_endpoint is setup by
> vhost_scsi_set_endpoint()
>
> Signed-off-by: Asias He <[email protected]>
> Reviewed-by: Stefan Hajnoczi <[email protected]>
> ---
> drivers/vhost/tcm_vhost.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/vhost/tcm_vhost.c b/drivers/vhost/tcm_vhost.c
> index b3e50d7..29612bc 100644
> --- a/drivers/vhost/tcm_vhost.c
> +++ b/drivers/vhost/tcm_vhost.c
> @@ -91,6 +91,18 @@ static int iov_num_pages(struct iovec *iov)
> ((unsigned long)iov->iov_base & PAGE_MASK)) >> PAGE_SHIFT;
> }
>
> +static bool tcm_vhost_check_endpoint(struct vhost_scsi *vs)
> +{
> + bool ret = false;
> +
> + mutex_lock(&vs->dev.mutex);
> + if (vs->vs_endpoint)
> + ret = true;
> + mutex_unlock(&vs->dev.mutex);
The return value is invalid as soon as mutex_unlock is called, i.e.
before tcm_vhost_check_endpoint returns. Instead, check vs->vs_endpoint
in the caller while the mutex is taken.
Paolo
> + return ret;
> +}
> +
> static int tcm_vhost_check_true(struct se_portal_group *se_tpg)
> {
> return 1;
>
_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization