• David Jeffery's avatar
    Return short read or 0 at end of a raw device, not EIO · b2de525f
    David Jeffery authored
    Author: David Jeffery <djeffery@redhat.com>
    Changes to the basic direct I/O code have broken the raw driver when reading
    to the end of a raw device.  Instead of returning a short read for a read that
    extends partially beyond the device's end or 0 when at the end of the device,
    these reads now return EIO.
    
    The raw driver needs the same end of device handling as was added for normal
    block devices.  Using blkdev_read_iter, which has the needed size checks,
    prevents the EIO conditions at the end of the device.
    Signed-off-by: default avatarDavid Jeffery <djeffery@redhat.com>
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    b2de525f
block_dev.c 44 KB