[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 01/22] block: Move initialisation of BlockLimits
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH 01/22] block: Move initialisation of BlockLimits to bdrv_refresh_limits() |
Date: |
Thu, 12 Dec 2013 10:35:45 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Am 12.12.2013 um 07:17 hat Peter Lieven geschrieben:
> Am 11.12.2013 22:08, schrieb Kevin Wolf:
> > This function separates filling the BlockLimits from bdrv_open(), which
> > allows it to call it from other operations which may change the limits
> > (e.g. modifications to the backing file chain or bdrv_reopen)
> >
> > Signed-off-by: Kevin Wolf <address@hidden>
> > +static int iscsi_refresh_limits(BlockDriverState *bs)
> > +{
> > + IscsiLun *iscsilun = bs->opaque;
> > + struct scsi_task *task = NULL;
> > + int ret;
> > +
> > + memset(&bs->bl, 0, sizeof(bs->bl));
> > +
> you do that memset in bdrv_refresh_limits already.
Right, I'll drop it here.
> > if (iscsilun->lbp.lbpu || iscsilun->lbp.lbpws) {
> > struct scsi_inquiry_block_limits *inq_bl;
> > task = iscsi_do_inquiry(iscsilun->iscsi, iscsilun->lun, 1,
> > @@ -1462,48 +1512,14 @@ static int iscsi_open(BlockDriverState *bs, QDict
> > *options, int flags,
>
> iscsi_do_inquiry does a sync call to request the pages from the target.
> you can only do that here if you can guarantee that iscsi_refresh_limits will
> be called with no pending requests in-flight otherwise this will end in a
> mess.
>
> otherwise i would propose to leave the inquiry call ins iscsi_open and just
> fill
> the bs->bl struc tin iscsi_refresh_limits. the problem is if we make this
> async
> we have to handle all possible I/O callbacks whiile in iscsi_refresh_limits.
> i do not see how an iscsi target can change its limits while a target is
> mounted.
Yes, I'll just split the block in two, leaving the actual request in
iscsi_open().
Thanks for your review.
Kevin
[Qemu-devel] [PATCH 03/22] block: Update BlockLimits when they might have changed, Kevin Wolf, 2013/12/11
[Qemu-devel] [PATCH 08/22] raw: Probe required direct I/O alignment, Kevin Wolf, 2013/12/11
[Qemu-devel] [PATCH 09/22] block: Introduce bdrv_aligned_preadv(), Kevin Wolf, 2013/12/11
[Qemu-devel] [PATCH 07/22] block: rename buffer_alignment to guest_block_size, Kevin Wolf, 2013/12/11
[Qemu-devel] [PATCH 10/22] block: Introduce bdrv_co_do_preadv(), Kevin Wolf, 2013/12/11
[Qemu-devel] [PATCH 11/22] block: Introduce bdrv_aligned_pwritev(), Kevin Wolf, 2013/12/11
[Qemu-devel] [PATCH 12/22] block: write: Handle COR dependency after I/O throttling, Kevin Wolf, 2013/12/11
[Qemu-devel] [PATCH 13/22] block: Introduce bdrv_co_do_pwritev(), Kevin Wolf, 2013/12/11