block/export: stop using is_external in vhost-user-blk server
authorStefan Hajnoczi <stefanha@redhat.com>
Tue, 16 May 2023 19:02:25 +0000 (15:02 -0400)
committerKevin Wolf <kwolf@redhat.com>
Tue, 30 May 2023 15:32:02 +0000 (17:32 +0200)
commite1054cd4aad03a493a5d1cded7508f7c348205bf
tree82ea81218f6e975fd682bf7a211897f5f2375adb
parent8f5e9a8ee189b44ffa90cc6db61e25499b9d786a
block/export: stop using is_external in vhost-user-blk server

vhost-user activity must be suspended during bdrv_drained_begin/end().
This prevents new requests from interfering with whatever is happening
in the drained section.

Previously this was done using aio_set_fd_handler()'s is_external
argument. In a multi-queue block layer world the aio_disable_external()
API cannot be used since multiple AioContext may be processing I/O, not
just one.

Switch to BlockDevOps->drained_begin/end() callbacks.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20230516190238.8401-8-stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/export/vhost-user-blk-server.c
util/vhost-user-server.c