qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]