/* This is always called in the context of the task which submitted the I/O.  */
struct io_context* get_io_context(gfp_t gfp_flags, int node)
/* This is always called in the context of the task which submitted the I/O.  */
struct io_context* get_io_context(gfp_t gfp_flags, int node)
{
	struct io_context *ret = NULL;
	do {
		ret = current_io_context(gfp_flags, node);
		if (unlikely(!ret))
			break;
	} while (!atomic_long_inc_not_zero(&ret->refcount));
	return ret;
}