From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44995) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XONvG-00013j-S8 for qemu-devel@nongnu.org; Mon, 01 Sep 2014 05:29:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XONvB-0004ry-MT for qemu-devel@nongnu.org; Mon, 01 Sep 2014 05:29:14 -0400 Received: from lputeaux-656-01-25-125.w80-12.abo.wanadoo.fr ([80.12.84.125]:38221 helo=paradis.irqsave.net) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XONvB-0004rR-Gu for qemu-devel@nongnu.org; Mon, 01 Sep 2014 05:29:09 -0400 Date: Mon, 1 Sep 2014 11:28:22 +0200 From: =?iso-8859-1?Q?Beno=EEt?= Canet Message-ID: <20140901092821.GI15537@irqsave.net> References: <1409557394-11853-1-git-send-email-namei.unix@gmail.com> <1409557394-11853-3-git-send-email-namei.unix@gmail.com> <20140901082854.GC15537@irqsave.net> <20140901091919.GC720@ubuntu-trusty> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <20140901091919.GC720@ubuntu-trusty> Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH 2/8] block: add driver operation callbacks List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Liu Yuan Cc: =?iso-8859-1?Q?Beno=EEt?= Canet , Kevin Wolf , qemu-devel@nongnu.org, Stefan Hajnoczi The Monday 01 Sep 2014 =E0 17:19:19 (+0800), Liu Yuan wrote : > On Mon, Sep 01, 2014 at 10:28:54AM +0200, Beno=EEt Canet wrote: > > The Monday 01 Sep 2014 =E0 15:43:08 (+0800), Liu Yuan wrote : > > > Driver operations are defined as callbacks passed from block upper = drivers to > > > lower drivers and are supposed to be called by lower drivers. > > >=20 > > > Requests handling(queuing, submitting, etc.) are done in protocol t= ier in the > > > block layer and connection states are also maintained down there. D= river > > > operations are supposed to notify the upper tier (such as quorum) o= f the states > > > changes. > > >=20 > > > For now only two operation are added: > > >=20 > > > driver_disconnect: called when connection is off > > > driver_reconnect: called when connection is on after disconnection > > >=20 > > > Which are used to notify upper tier of the connection state. > > >=20 > > > Cc: Eric Blake > > > Cc: Benoit Canet > > > Cc: Kevin Wolf > > > Cc: Stefan Hajnoczi > > > Signed-off-by: Liu Yuan > > > --- > > > block.c | 7 +++++++ > > > include/block/block.h | 7 +++++++ > > > include/block/block_int.h | 3 +++ > > > 3 files changed, 17 insertions(+) > > >=20 > > > diff --git a/block.c b/block.c > > > index c12b8de..22eb3e4 100644 > > > --- a/block.c > > > +++ b/block.c > > > @@ -2152,6 +2152,13 @@ void bdrv_set_dev_ops(BlockDriverState *bs, = const BlockDevOps *ops, > > > bs->dev_opaque =3D opaque; > > > } > > > =20 > > > +void bdrv_set_drv_ops(BlockDriverState *bs, const BlockDrvOps *ops= , > > > + void *opaque) > > > +{ > > > + bs->drv_ops =3D ops; > > > + bs->drv_opaque =3D opaque; > >=20 > > We need to be very carefull of the mix between these fields and the i= nfamous > > bdrv_swap function. > >=20 > > Also I don't know if "driver operations" is the right name since the = BlockDriver structure's > > callback could also be named "driver operations". > >=20 >=20 > BlockDrvierState has a "device operation" for callbacks from devices. S= o I > choose "driver operation". So any sugguestion for better name? >>From what I see in this series the job of these callbacks is to send a me= ssage or a signal to the upper BDS. Also the name must reflect it goes from the child to the parent. child_signals ? child_messages ? Best regards Beno=EEt >=20 > Thanks > Yuan >=20