On Mon, Sep 01, 2014 at 10:31:47AM +0200, Benoît Canet wrote:
> The Monday 01 Sep 2014 à 15:43:09 (+0800), Liu Yuan wrote :
> > This is the reference usage how we propagate connection state to upper tier.
> > 
> > Cc: Eric Blake <ebl...@redhat.com>
> > Cc: Benoit Canet <ben...@irqsave.net>
> > Cc: Kevin Wolf <kw...@redhat.com>
> > Cc: Stefan Hajnoczi <stefa...@redhat.com>
> > Signed-off-by: Liu Yuan <namei.u...@gmail.com>
> > ---
> >  block/sheepdog.c | 9 +++++++++
> >  1 file changed, 9 insertions(+)
> > 
> > diff --git a/block/sheepdog.c b/block/sheepdog.c
> > index 53c24d6..9c0fc49 100644
> > --- a/block/sheepdog.c
> > +++ b/block/sheepdog.c
> > @@ -714,6 +714,11 @@ static coroutine_fn void reconnect_to_sdog(void 
> > *opaque)
> >  {
> >      BDRVSheepdogState *s = opaque;
> >      AIOReq *aio_req, *next;
> > +    BlockDriverState *bs = s->bs;
> > +
> > +    if (bs->drv_ops && bs->drv_ops->driver_disconnect) {
> > +        bs->drv_ops->driver_disconnect(bs);
> > +    }
> 
> Since this sequence will be strictly the same for all the implementation
> could we create a bdrv_signal_disconnect(bs); in the block layer to make this
> code generic ?

I'm not sure if other protocol driver can have the same auto-reconnection logic.
Probably for simplicity, we keep it as is in the patch. Later when we get more
flesh of implementation of other protocols, we can make a better decision.

Thanks
Yuan

Reply via email to