Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 875736bb authored by Jens Axboe's avatar Jens Axboe
Browse files

aio: abstract out io_event filler helper



Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 88a6f18b
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -1065,6 +1065,15 @@ static inline void iocb_put(struct aio_kiocb *iocb)
	}
}

static void aio_fill_event(struct io_event *ev, struct aio_kiocb *iocb,
			   long res, long res2)
{
	ev->obj = (u64)(unsigned long)iocb->ki_user_iocb;
	ev->data = iocb->ki_user_data;
	ev->res = res;
	ev->res2 = res2;
}

/* aio_complete
 *	Called when the io request on the given iocb is complete.
 */
@@ -1092,10 +1101,7 @@ static void aio_complete(struct aio_kiocb *iocb, long res, long res2)
	ev_page = kmap_atomic(ctx->ring_pages[pos / AIO_EVENTS_PER_PAGE]);
	event = ev_page + pos % AIO_EVENTS_PER_PAGE;

	event->obj = (u64)(unsigned long)iocb->ki_user_iocb;
	event->data = iocb->ki_user_data;
	event->res = res;
	event->res2 = res2;
	aio_fill_event(event, iocb, res, res2);

	kunmap_atomic(ev_page);
	flush_dcache_page(ctx->ring_pages[pos / AIO_EVENTS_PER_PAGE]);