[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 04/14] aio: make aio_context_acquire()/aio_context_release() a no-op
- To: Kevin Wolf <kwolf@xxxxxxxxxx>
- From: Stefan Hajnoczi <stefanha@xxxxxxxxx>
- Date: Tue, 19 Dec 2023 16:23:25 -0500
- Cc: Stefan Hajnoczi <stefanha@xxxxxxxxxx>, qemu-devel@xxxxxxxxxx, Philippe Mathieu-Daudé <philmd@xxxxxxxxxx>, Vladimir Sementsov-Ogievskiy <vsementsov@xxxxxxxxxxxxxx>, Cleber Rosa <crosa@xxxxxxxxxx>, Xie Changlong <xiechanglong.d@xxxxxxxxx>, Paul Durrant <paul@xxxxxxx>, Ari Sundholm <ari@xxxxxxxxxx>, Jason Wang <jasowang@xxxxxxxxxx>, Eric Blake <eblake@xxxxxxxxxx>, John Snow <jsnow@xxxxxxxxxx>, Eduardo Habkost <eduardo@xxxxxxxxxxx>, Wen Congyang <wencongyang2@xxxxxxxxxx>, Alberto Garcia <berto@xxxxxxxxxx>, Anthony Perard <anthony.perard@xxxxxxxxxx>, "Michael S. Tsirkin" <mst@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, qemu-block@xxxxxxxxxx, Juan Quintela <quintela@xxxxxxxxxx>, Paolo Bonzini <pbonzini@xxxxxxxxxx>, Coiby Xu <Coiby.Xu@xxxxxxxxx>, Fabiano Rosas <farosas@xxxxxxx>, Hanna Reitz <hreitz@xxxxxxxxxx>, Zhang Chen <chen.zhang@xxxxxxxxx>, Daniel P. Berrangé <berrange@xxxxxxxxxx>, Pavel Dovgalyuk <pavel.dovgaluk@xxxxxxxxx>, Peter Xu <peterx@xxxxxxxxxx>, Emanuele Giuseppe Esposito <eesposit@xxxxxxxxxx>, Fam Zheng <fam@xxxxxxxxxx>, Leonardo Bras <leobras@xxxxxxxxxx>, David Hildenbrand <david@xxxxxxxxxx>, Li Zhijian <lizhijian@xxxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
- Delivery-date: Tue, 19 Dec 2023 21:23:53 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
The following hack makes the test pass but there are larger safety
issues that I'll need to look at on Wednesday:
diff --git a/nbd/server.c b/nbd/server.c
index 895cf0a752..cf4b7d5c6d 100644
--- a/nbd/server.c
+++ b/nbd/server.c
@@ -1617,7 +1617,7 @@ static void nbd_drained_begin(void *opaque)
}
}
-static void nbd_drained_end(void *opaque)
+static void nbd_resume_clients(void *opaque)
{
NBDExport *exp = opaque;
NBDClient *client;
@@ -1628,6 +1628,15 @@ static void nbd_drained_end(void *opaque)
}
}
+static void nbd_drained_end(void *opaque)
+{
+ NBDExport *exp = opaque;
+
+ /* TODO how to make sure exp doesn't go away? */
+ /* TODO what if AioContext changes before this runs? */
+ aio_bh_schedule_oneshot(nbd_export_aio_context(exp),
nbd_resume_clients, exp);
+}
+
static bool nbd_drained_poll(void *opaque)
{
NBDExport *exp = opaque;
|