Re: [PATCH] lib/buildid: use __kernel_read() for sleepable context

From: Christoph Hellwig

Date: Thu Dec 18 2025 - 00:13:58 EST


On Wed, Dec 17, 2025 at 04:58:18PM -0800, Shakeel Butt wrote:
> For the sleepable context, convert freader to use __kernel_read()
> instead of direct page cache access via read_cache_folio(). This
> simplifies the faultable code path by using the standard kernel file
> reading interface which handles all the complexity of reading file data.
>
> At the moment we are not changing the code for non-sleepable context
> which uses filemap_get_folio() and only succeeds if the target folios
> are already in memory and up-to-date. The reason is to keep the patch
> simple and easier to backport to stable kernels.
>
> Syzbot repro does not crash the kernel anymore and the selftests run
> successfully.
>
> In the follow up we will make __kernel_read() with IOCB_NOWAIT work for
> non-sleepable contexts. In addition, I would like to replace the
> secretmem check with a more generic approach and will add fstest for the
> buildid code.

Getting the code further away from messing with internals is good:

Reviewed-by: Christoph Hellwig <hch@xxxxxx>

I do not think making IOCB_NOWAIT never wait is feasily, though for the
next step.