aio-posix: simplify FDMonOps->update() prototype

The AioHandler *node, bool is_new arguments are more complicated to
think about than simply being given AioHandler *old_node, AioHandler
*new_node.

Furthermore, the new Linux io_uring file descriptor monitoring mechanism
added by the new patch requires access to both the old and the new
nodes.  Make this change now in preparation.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Link: https://lore.kernel.org/r/20200305170806.1313245-5-stefanha@redhat.com
Message-Id: <20200305170806.1313245-5-stefanha@redhat.com>
This commit is contained in:
Stefan Hajnoczi 2020-03-05 17:08:03 +00:00
parent 1f050a4690
commit b321051cf4
4 changed files with 22 additions and 23 deletions

View file

@ -57,17 +57,16 @@ typedef struct {
/*
* update:
* @ctx: the AioContext
* @node: the handler
* @is_new: is the file descriptor already being monitored?
* @old_node: the existing handler or NULL if this file descriptor is being
* monitored for the first time
* @new_node: the new handler or NULL if this file descriptor is being
* removed
*
* Add/remove/modify a monitored file descriptor. There are three cases:
* 1. node->pfd.events == 0 means remove the file descriptor.
* 2. !is_new means modify an already monitored file descriptor.
* 3. is_new means add a new file descriptor.
* Add/remove/modify a monitored file descriptor.
*
* Called with ctx->list_lock acquired.
*/
void (*update)(AioContext *ctx, AioHandler *node, bool is_new);
void (*update)(AioContext *ctx, AioHandler *old_node, AioHandler *new_node);
/*
* wait: