static int io_uring_add_task_file(struct file *file)
{
	if (unlikely(!current->io_uring)) {
		int ret;

		ret = io_uring_alloc_task_context(current);
		if (unlikely(ret))
			return ret;
	}
	if (current->io_uring->last != file) {
		XA_STATE(xas, &current->io_uring->xa, (unsigned long) file);
		void *old;

		rcu_read_lock();
		old = xas_load(&xas);
		if (old != file) {
			get_file(file);
			xas_lock(&xas);
			xas_store(&xas, file);
			xas_unlock(&xas);
		}
		rcu_read_unlock();
		current->io_uring->last = file;
	}

	return 0;
}
static int io_uring_add_task_file(struct file *file)
{
	if (unlikely(!current->io_uring)) {
		int ret;

		ret = io_uring_alloc_task_context(current);
		if (unlikely(ret))
			return ret;
	}
	if (current->io_uring->last != file) {
		XA_STATE(xas, &current->io_uring->xa, (unsigned long) file);
		void *old;

		rcu_read_lock();
		old = xas_load(&xas);
		if (old != file) {
			get_file(file);
			xas_lock(&xas);
			xas_store(&xas, file);
			xas_unlock(&xas);
		}
		rcu_read_unlock();
		current->io_uring->last = file;
	}

	return 0;
}