On Thu, May 26, 2022 at 08:23:02PM +0100, Alberto Faria wrote: > On Thu, May 26, 2022 at 9:55 AM Stefan Hajnoczi <stefa...@redhat.com> wrote: > > The bdrv_pread()/bdrv_pwrite() errno for negative bytes changes from > > EINVAL to EIO. Did you audit the code to see if it matters? > > I don't believe I had, but I checked all calls now. There's ~140 of > them, so the probability of me having overlooked something isn't > exactly low, but it seems callers either cannot pass in negative > values or don't care about the particular error code returned. > > Another option is to make bdrv_co_pread() and bdrv_co_pwrite() (which > have much fewer callers) fail with -EINVAL when bytes is negative, but > perhaps just getting rid of this final inconsistency between > bdrv_[co_]{pread,pwrite}[v]() now will be worth it in the long run.
Failing with -EINVAL for negative bytes makes more sense at identifying a programming error (whereas EIO tends to mean hardware failure), so making that sort of cleanup seems reasonable. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org