Re: [PATCH 1/9] block: fix data loss and stale date exposure problems during append write

Christoph Hellwig
2025-11-21T10:31:23Z

On Fri, Nov 21, 2025 at 04:17:40PM +0800, zhangshida wrote:
> From: Shida Zhang <zhangshida@kylinos.cn>
>
> Signed-off-by: Shida Zhang <zhangshida@kylinos.cn>
> ---
> block/bio.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/block/bio.c b/block/bio.c
> index b3a79285c27..55c2c1a0020 100644
> --- a/block/bio.c
> +++ b/block/bio.c
> @@ -322,7 +322,7 @@ static struct bio *__bio_chain_endio(struct bio *bio)
>
> static void bio_chain_endio(struct bio *bio)
> {
> - bio_endio(__bio_chain_endio(bio));
> + bio_endio(bio);

I don't see how this can work. bio_chain_endio is called literally
as the result of calling bio_endio, so you recurse into that.

Also please put your analysis of the problem into this patch as
said by Johannes. And please wrap it at 73 characters as the wall of
text in the cover letter is quite unreadable.