Re: [PATCH] md/bitmap: fix GPF in write_page caused by resize race
From: Yu Kuai
Date: Mon Jan 26 2026 - 00:34:15 EST
在 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