Re: [PATCH] md/bitmap: fix GPF in write_page caused by resize race

From: Jinpu Wang

Date: Mon Jan 26 2026 - 03:21:52 EST


On Mon, Jan 26, 2026 at 6:33 AM Yu Kuai <yukuai@xxxxxxxxx> wrote:
>
> 在 2026/1/20 18:24, Jack Wang 写道:
>
> > A General Protection Fault occurs in write_page() during array resize:
> > RIP: 0010:write_page+0x22b/0x3c0 [md_mod]
> >
> > This is a use-after-free race between bitmap_daemon_work() and
> > __bitmap_resize(). The daemon iterates over `bitmap->storage.filemap`
> > without locking, while the resize path frees that storage via
> > md_bitmap_file_unmap(). `quiesce()` does not stop the md thread,
> > allowing concurrent access to freed pages.
> >
> > Fix by holding `mddev->bitmap_info.mutex` during the bitmap update.
> >
> > Closes:https://lore.kernel.org/linux-raid/CAMGffE=Mbfp=7xD_hYxXk1PAaCZNSEAVeQGKGy7YF9f2S4=NEA@xxxxxxxxxxxxxx/T/#u
> > Cc:stable@xxxxxxxxxxxxxxx
> > Signed-off-by: Jack Wang<jinpu.wang@xxxxxxxxx>
> > ---
> > drivers/md/md-bitmap.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
>
> Applied with a fixtag:
>
> Fixes: d60b479d177a ("md/bitmap: add bitmap_resize function to allow
> bitmap resizing.")
>
> --
> Thansk,
> Kuai
Hi Kuai,

Thanks for applying the fix with the fixes tag.

Best,
Jinpu