Commit 4e3d9ff9 authored by Jens Axboe's avatar Jens Axboe
Browse files

io_uring: put flag checking for needing req cleanup in one spot



We have this in two spots right now, which is a bit fragile. In
preparation for moving REQ_F_POLLED cleanup into the same spot, move
the check into a separate helper so we only have it once.

Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent ea6a693d
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -1598,10 +1598,15 @@ static void io_req_complete_post(struct io_kiocb *req, long res,
	}
}

static inline bool io_req_needs_clean(struct io_kiocb *req)
{
	return req->flags & (REQ_F_BUFFER_SELECTED | REQ_F_NEED_CLEANUP);
}

static void io_req_complete_state(struct io_kiocb *req, long res,
				  unsigned int cflags)
{
	if (req->flags & (REQ_F_NEED_CLEANUP | REQ_F_BUFFER_SELECTED))
	if (io_req_needs_clean(req))
		io_clean_op(req);
	req->result = res;
	req->compl.cflags = cflags;
@@ -1713,10 +1718,8 @@ static void io_dismantle_req(struct io_kiocb *req)

	if (!(flags & REQ_F_FIXED_FILE))
		io_put_file(req->file);
	if (flags & (REQ_F_NEED_CLEANUP | REQ_F_BUFFER_SELECTED |
		     REQ_F_INFLIGHT)) {
	if (io_req_needs_clean(req) || (req->flags & REQ_F_INFLIGHT)) {
		io_clean_op(req);

		if (req->flags & REQ_F_INFLIGHT) {
			struct io_uring_task *tctx = req->task->io_uring;