Am 20.06.2014 um 21:57 hat Max Reitz geschrieben:
For the NBD server to work with dataplane, it needs to correctly access
the exported BDS. It makes the most sense to run both in the same
AioContext, therefore this series implements methods for tracking a
BDS's AioContext and makes NBD make use of this for keeping the clients
connected to that BDS in the same AioContext.
This series breaks compilation of NBD on Windows, because
aio_set_fd_handler() is not available there yet. It should therefore not
be merged until that function is available (which will probably not
happen before qemu 2.2).
v3:
- Patch 1: Drop aio_notify(), because aio_set_fd_handler() will call it
anyway [Stefan]
v2:
- Patch 1: Drop NBDClient::restart_write; checking whether
NBDClient::send_coroutine is not NULL suffices [Paolo]
Dropped from the block branch because it breaks the win32 build:
nbd.c: In function 'nbd_set_handlers':
nbd.c:1323:9: warning: implicit declaration of function 'aio_set_fd_handler'
[-Wimplicit-function-declaration]
aio_set_fd_handler(client->exp->ctx, client->sock,
^
nbd.c:1323:9: warning: nested extern declaration of 'aio_set_fd_handler'
[-Wnested-externs]
And the resulting undefined references during linking.