Re: [PATCH] check kernel version for io_method

Andreas Karlsson <andreas@proxel.se>

From: Andreas Karlsson <andreas@proxel.se>
To: Steven Niu <niushiji@gmail.com>, Pierre <pierre.forstmann@gmail.com>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2026-01-14T03:09:35Z
Lists: pgsql-hackers
On 1/14/26 3:31 AM, Steven Niu wrote:
> BTW, the error message in the following code block is wrong as it locates in branch that IO_URING is not enabled.
> 
> #else
> +	if (*newval == IOMETHOD_WORKER || *newval == IOMETHOD_SYNC)
> +	{
> +		/*
> +		 * OK
> +		 */
> +	}
> +	else
> +	{
> +		GUC_check_errdetail("io_uring requires Linux kernel 5.6 or later.");
> +		return false;
> +	}

That code is unreachable so it should just be deleted. Look at the enum.

/* Enum for io_method GUC. */
typedef enum IoMethod
{
	IOMETHOD_SYNC = 0,
	IOMETHOD_WORKER,
#ifdef IOMETHOD_IO_URING_ENABLED
	IOMETHOD_IO_URING,
#endif
}			IoMethod;

Andreas