mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
vhost/vsock: split out vhost_vsock_drop_backends helper
Split the actual backend dropping part from vhost_vsock_stop. We're going to need it for the VHOST_RESET_OWNER implementation in the following patch, when vsock->dev.mutex is already taken and owner is checked. Signed-off-by: Pavel Tikhomirov <ptikhomirov@virtuozzo.com> Signed-off-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com> Reviewed-by: Pavel Tikhomirov <ptikhomirov@virtuozzo.com> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Message-ID: <20260724114542.734623-2-andrey.drobyshev@virtuozzo.com>
This commit is contained in:
parent
ac7360d486
commit
01b8354fa2
|
|
@ -664,9 +664,24 @@ static int vhost_vsock_start(struct vhost_vsock *vsock)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static void vhost_vsock_drop_backends(struct vhost_vsock *vsock)
|
||||
{
|
||||
struct vhost_virtqueue *vq;
|
||||
size_t i;
|
||||
|
||||
lockdep_assert_held(&vsock->dev.mutex);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(vsock->vqs); i++) {
|
||||
vq = &vsock->vqs[i];
|
||||
|
||||
mutex_lock(&vq->mutex);
|
||||
vhost_vq_set_backend(vq, NULL);
|
||||
mutex_unlock(&vq->mutex);
|
||||
}
|
||||
}
|
||||
|
||||
static int vhost_vsock_stop(struct vhost_vsock *vsock, bool check_owner)
|
||||
{
|
||||
size_t i;
|
||||
int ret = 0;
|
||||
|
||||
mutex_lock(&vsock->dev.mutex);
|
||||
|
|
@ -677,14 +692,7 @@ static int vhost_vsock_stop(struct vhost_vsock *vsock, bool check_owner)
|
|||
goto err;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(vsock->vqs); i++) {
|
||||
struct vhost_virtqueue *vq = &vsock->vqs[i];
|
||||
|
||||
mutex_lock(&vq->mutex);
|
||||
vhost_vq_set_backend(vq, NULL);
|
||||
mutex_unlock(&vq->mutex);
|
||||
}
|
||||
|
||||
vhost_vsock_drop_backends(vsock);
|
||||
err:
|
||||
mutex_unlock(&vsock->dev.mutex);
|
||||
return ret;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user