static void io_close_finish(struct io_wq_work **workptr)
{
	struct io_kiocb *req = container_of(*workptr, struct io_kiocb, work);
	struct io_kiocb *nxt = NULL;

	/* Invoked with files, we need to do the close */
	if (req->work.files) {
		int ret;

		ret = filp_close(req->close.put_file, req->work.files);
		if (ret < 0)
			req_set_fail_links(req);
		io_cqring_add_event(req, ret);
	}

	fput(req->close.put_file);

	io_put_req_find_next(req, &nxt);
	if (nxt)
		io_wq_assign_next(workptr, nxt);
}
static void io_close_finish(struct io_wq_work **workptr)
{
	struct io_kiocb *req = container_of(*workptr, struct io_kiocb, work);
	struct io_kiocb *nxt = NULL;

	 
	if (req->work.files) {
		int ret;

		ret = filp_close(req->close.put_file, req->work.files);
		if (ret < 0)
			req_set_fail_links(req);
		io_cqring_add_event(req, ret);
	}

	fput(req->close.put_file);

	io_put_req_find_next(req, &nxt);
	if (nxt)
		io_wq_assign_next(workptr, nxt);
}