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

Christoph Hellwig hch at infradead.org
Fri Nov 21 02:31:17 PST 2025


On Fri, Nov 21, 2025 at 04:17:40PM +0800, zhangshida wrote:
> From: Shida Zhang <zhangshida at kylinos.cn>
> 
> Signed-off-by: Shida Zhang <zhangshida at 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.




More information about the Linux-nvme mailing list