static int io_uring_alloc_task_context(struct task_struct *task)
{
	struct io_uring_task *tctx;

	tctx = kmalloc(sizeof(*tctx), GFP_KERNEL);
	if (unlikely(!tctx))
		return -ENOMEM;

	xa_init(&tctx->xa);
	init_waitqueue_head(&tctx->wait);
	tctx->last = NULL;
	tctx->in_idle = 0;
	atomic_long_set(&tctx->req_issue, 0);
	atomic_long_set(&tctx->req_complete, 0);
	task->io_uring = tctx;
	return 0;
}
static int io_uring_alloc_task_context(struct task_struct *task)
{
	struct io_uring_task *tctx;

	tctx = kmalloc(sizeof(*tctx), GFP_KERNEL);
	if (unlikely(!tctx))
		return -ENOMEM;

	xa_init(&tctx->xa);
	init_waitqueue_head(&tctx->wait);
	tctx->last = NULL;
	tctx->in_idle = 0;
	atomic_long_set(&tctx->req_issue, 0);
	atomic_long_set(&tctx->req_complete, 0);
	task->io_uring = tctx;
	return 0;
}