On Thu, Apr 17, 2025 at 10:49:55AM +0200, Kevin Wolf wrote: > Am 14.04.2025 um 22:12 hat Stefan Hajnoczi geschrieben: > > When guests send misaligned discard requests, the block layer breaks > > them up into a misaligned head, an aligned main body, and a misaligned > > tail. > > > > The file-posix block driver on Linux returns -EINVAL on misaligned > > discard requests. This causes bdrv_co_pdiscard() to fail and guests > > configured with werror=stop will pause. > > > > Add a special case for misaligned head/tail requests. Simply continue > > when EINVAL is encountered so that the aligned main body of the request > > can be completed and the guest is not paused. This is the best we can do > > when guest discard limits do not match the host discard limits. > > > > Fixes: https://issues.redhat.com/browse/RHEL-86032 > > Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> > > Reviewed-by: Hanna Czenczek <hre...@redhat.com> > > It would be good to also update the comment a bit further up: > > /* Discard is advisory, but some devices track and coalesce > * unaligned requests, so we must pass everything down rather than > * round here. Still, most devices will just silently ignore > * unaligned requests (by returning -ENOTSUP), so we must fragment > * the request accordingly. */ > > I'm not sure where the -ENOTSUP came from (Eric, do you remember?), but > we should at least mention this -EINVAL case separately.
Sounds good. Stefan
signature.asc
Description: PGP signature