From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42254) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XONon-0005eK-Nz for qemu-devel@nongnu.org; Mon, 01 Sep 2014 05:22:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XONoh-0002XX-Nq for qemu-devel@nongnu.org; Mon, 01 Sep 2014 05:22:33 -0400 Received: from mail-pd0-x22e.google.com ([2607:f8b0:400e:c02::22e]:48691) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XONoh-0002XQ-Gz for qemu-devel@nongnu.org; Mon, 01 Sep 2014 05:22:27 -0400 Received: by mail-pd0-f174.google.com with SMTP id ft15so5762240pdb.33 for ; Mon, 01 Sep 2014 02:22:23 -0700 (PDT) Date: Mon, 1 Sep 2014 17:22:19 +0800 From: Liu Yuan Message-ID: <20140901092219.GD720@ubuntu-trusty> References: <1409557394-11853-1-git-send-email-namei.unix@gmail.com> <1409557394-11853-4-git-send-email-namei.unix@gmail.com> <20140901083146.GD15537@irqsave.net> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20140901083146.GD15537@irqsave.net> Subject: Re: [Qemu-devel] [PATCH 3/8] block/sheepdog: propagate disconnect/reconnect events to upper driver List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?iso-8859-1?Q?Beno=EEt?= Canet Cc: Kevin Wolf , qemu-devel@nongnu.org, Stefan Hajnoczi 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 > > Cc: Benoit Canet > > Cc: Kevin Wolf > > Cc: Stefan Hajnoczi > > Signed-off-by: Liu Yuan > > --- > > 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