Re: [PATCH v2 0/3] btrfs: fix failed sprout device add rollback

Qu Wenruo <[email protected]>
Newsgroups org.kernel.vger.linux-btrfs,org.kernel.vger.linux-kernel
Message-ID <[email protected]>

在 2026/8/10 20:29, Guanghui Yang 写道:
> Hi,
> 
> This series fixes the error path for adding the first writable device to a
> seed filesystem.
> 
> I verified the failure path locally in QEMU with null_blk and a seed btrfs
> filesystem:
> 
> - create btrfs on /dev/nullb0
> - set the seed flag with btrfstune -S 1
> - mount the filesystem read-only
> - run "btrfs device add -f /dev/nullb1 /mnt"
> - inject -EIO after metadata chunk creation in init_first_rw_device()
> 
> Before these fixes, the injected failure triggered:
> 
> - WARN_ON(!list_empty(&device->post_commit_list)) in btrfs_free_device()
> - a NULL pointer dereference through btrfs_show_devname()
> - the sprout fs_devices state left with no open devices
> 
> Without the injected failure, the same device-add path succeeds.

Missing AI disclosure?

> 
> Guanghui Yang (3):
>    btrfs: detach failed sprout device from transaction update list
>    btrfs: restore active device pointers after failed sprout
>    btrfs: roll back sprout setup after device add failure
> 
> This v2 keeps the code changes unchanged and adds the local reproduction
> result to the cover letter.
> 
>   fs/btrfs/volumes.c | 43 +++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 43 insertions(+)
> 
> 
> base-commit: 38fec10eb60d687e30c8c6b5420d86e8149f7557
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.