[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 2/3] block: consolidate blocksize properties consistency c
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v4 2/3] block: consolidate blocksize properties consistency checks |
Date: |
Wed, 20 May 2020 10:59:11 +0200 |
On Wed, May 20, 2020 at 10:57 AM Philippe Mathieu-Daudé
<address@hidden> wrote:
>
> Hi Roman,
>
> On 5/20/20 10:06 AM, Roman Kagan wrote:
> > Several block device properties related to blocksize configuration must
> > be in certain relationship WRT each other: physical block must be no
> > smaller than logical block; min_io_size, opt_io_size, and
> > discard_granularity must be a multiple of a logical block.
> >
> > To ensure these requirements are met, add corresponding consistency
> > checks to blkconf_blocksizes, adjusting its signature to communicate
> > possible error to the caller. Also remove the now redundant consistency
> > checks from the specific devices.
> >
> > Signed-off-by: Roman Kagan <address@hidden>
> > ---
> > v4: new patch
> >
> > include/hw/block/block.h | 2 +-
> > hw/block/block.c | 29 ++++++++++++++++++++++++++++-
> > hw/block/fdc.c | 5 ++++-
> > hw/block/nvme.c | 5 ++++-
> > hw/block/virtio-blk.c | 7 +------
> > hw/ide/qdev.c | 5 ++++-
> > hw/scsi/scsi-disk.c | 10 +++-------
> > hw/usb/dev-storage.c | 5 ++++-
> > tests/qemu-iotests/172.out | 2 +-
> > 9 files changed, 50 insertions(+), 20 deletions(-)
> >
> > diff --git a/include/hw/block/block.h b/include/hw/block/block.h
> > index d7246f3862..784953a237 100644
> > --- a/include/hw/block/block.h
> > +++ b/include/hw/block/block.h
> > @@ -87,7 +87,7 @@ bool blk_check_size_and_read_all(BlockBackend *blk, void
> > *buf, hwaddr size,
> > bool blkconf_geometry(BlockConf *conf, int *trans,
> > unsigned cyls_max, unsigned heads_max, unsigned
> > secs_max,
> > Error **errp);
> > -void blkconf_blocksizes(BlockConf *conf);
> > +bool blkconf_blocksizes(BlockConf *conf, Error **errp);
Maybe rename blkconf_validate_blocksizes()?
> > bool blkconf_apply_backend_options(BlockConf *conf, bool readonly,
> > bool resizable, Error **errp);
> >
[...]