On Mon, 14 Apr 2025, Damien Le Moal wrote:
> On 4/11/25 8:41 PM, Mikulas Patocka wrote:
> >
> >
> > On Fri, 11 Apr 2025, Damien Le Moal wrote:
> >
> >> On 4/11/25 04:49, Benjamin Marzinski wrote:
> >>> There were multiple places in dm's __bind() function where it could fail
> >>> and not completely roll back, leaving the device using the the old
> >>> table, but with device limits and resources from the new table.
> >>> Additionally, unused mempools for request-based devices were not always
> >>> freed immediately.
> >>>
> >>> Also, there were a number of issues with switching zoned tables that
> >>> emulate zone append (in other words, dm-crypt on top of zoned devices).
> >>> dm_blk_report_zones() could be called while the device was initially
> >>> setting up a zoned table and creating zoned resources or could possibly
> >>> fail to end a srcu read section. More importantly,
> >>> blk_revalidate_disk_zones() would never get called when updating a zoned
> >>> table. This could cause the dm device to see the wrong zone write
> >>> offsets, not have a large enough zwplugs reserved in its mempool, or
> >>> read invalid memory when checking the conventional zones bitmap.
> >>>
> >>> Finally, any DM device created on top of a device emulating zone appeads
> >>> will automatically have zone write plug resources created for it, since
> >>> max_hw_zone_append_sectors will always be 0 for a device stacked on top
> >>> of a device max_hw_zone_append_sectors = 0
> >>>
> >>> This patchset fixes these issues. It deals with the problems around
> >>> blk_revalidate_disk_zones() by only calling it for devices that have no
> >>> zone write plug resources. This will always correctly update the zoned
> >>> settings. If a device has zone write plug resources, calling
> >>> blk_revalidate_disk_zones() will not correctly update them in many
> >>> cases, so DM simply doesn't call it for devices with zone write plug
> >>> resources. Instead of allowing people to load tables that can break the
> >>> device, like currently happens, DM disallosw any table reloads that
> >>> change the zoned setting for devices that already have zone write plug
> >>> resources. Finally, it deals with the max_hw_zone_append_sectors issue
> >>> by making sure that it is non-zero for zoned DM devices that do not need
> >>> zone write append emulation.
> >>>
> >>> Changes in V4:
> >>> - Fixed typos in 2 commit messages (patches 4 and 5)
> >>> - rephrased comment in dm_revalidate_zones() (patch 5)
> >>
> >> I gave this a quick spin and did not detect any issues.
> >> So feel free to add:
> >>
> >> Tested-by: Damien Le Moal <dlem...@kernel.org>
> >>
> >> --
> >> Damien Le Moal
> >> Western Digital Research
> >
> > Thanks.
> >
> > I staged the patches for the next merge window.
>
> Hmmm... These are all fixes, so shouldn't they go into rc3 ?
I think the fixed bugs are not serious (we haven't received any user's bug
report that is fixed by these patches). And the patches are big and
there's a risk that they break something. So, I wouldn't hurry with them.
Mikulas