mirror of https://gitee.com/openkylin/linux.git
io_uring: store io_kiocb in wait->private
Store the io_kiocb in the private field instead of the poll entry, this is in preparation for allowing multiple waitqueues. No functional changes in this patch. Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
6fb614920b
commit
c2f2eb7d2c
|
@ -3730,8 +3730,8 @@ static void io_poll_trigger_evfd(struct io_wq_work **workptr)
|
||||||
static int io_poll_wake(struct wait_queue_entry *wait, unsigned mode, int sync,
|
static int io_poll_wake(struct wait_queue_entry *wait, unsigned mode, int sync,
|
||||||
void *key)
|
void *key)
|
||||||
{
|
{
|
||||||
struct io_poll_iocb *poll = wait->private;
|
struct io_kiocb *req = wait->private;
|
||||||
struct io_kiocb *req = container_of(poll, struct io_kiocb, poll);
|
struct io_poll_iocb *poll = &req->poll;
|
||||||
struct io_ring_ctx *ctx = req->ctx;
|
struct io_ring_ctx *ctx = req->ctx;
|
||||||
__poll_t mask = key_to_poll(key);
|
__poll_t mask = key_to_poll(key);
|
||||||
|
|
||||||
|
@ -3854,7 +3854,7 @@ static int io_poll_add(struct io_kiocb *req, struct io_kiocb **nxt)
|
||||||
/* initialized the list so that we can do list_empty checks */
|
/* initialized the list so that we can do list_empty checks */
|
||||||
INIT_LIST_HEAD(&poll->wait.entry);
|
INIT_LIST_HEAD(&poll->wait.entry);
|
||||||
init_waitqueue_func_entry(&poll->wait, io_poll_wake);
|
init_waitqueue_func_entry(&poll->wait, io_poll_wake);
|
||||||
poll->wait.private = poll;
|
poll->wait.private = req;
|
||||||
|
|
||||||
INIT_LIST_HEAD(&req->list);
|
INIT_LIST_HEAD(&req->list);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue