From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50323) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1adcFg-00006Y-HG for qemu-devel@nongnu.org; Wed, 09 Mar 2016 06:26:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1adcFd-0003KU-Bn for qemu-devel@nongnu.org; Wed, 09 Mar 2016 06:26:04 -0500 Received: from mx1.redhat.com ([209.132.183.28]:34431) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1adcFd-0003KM-5m for qemu-devel@nongnu.org; Wed, 09 Mar 2016 06:26:01 -0500 Date: Wed, 9 Mar 2016 12:25:55 +0100 From: Kevin Wolf Message-ID: <20160309112555.GD5205@noname.redhat.com> References: <20160301110732.10104.2019.stgit@PASHA-ISP> <20160301110758.10104.1337.stgit@PASHA-ISP> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160301110758.10104.1337.stgit@PASHA-ISP> Subject: Re: [Qemu-devel] [PATCH v3 4/5] block: add flush callback List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Pavel Dovgalyuk Cc: edgar.iglesias@xilinx.com, peter.maydell@linaro.org, igor.rubinov@gmail.com, mark.burton@greensocs.com, real@ispras.ru, hines@cert.org, qemu-devel@nongnu.org, maria.klimushenkova@ispras.ru, stefanha@redhat.com, pbonzini@redhat.com, batuzovk@ispras.ru, alex.bennee@linaro.org, fred.konrad@greensocs.com Am 01.03.2016 um 12:07 hat Pavel Dovgalyuk geschrieben: > This patch adds callback for flush request. This callback is responsible > for flushing whole block devices stack. bdrv_flush function does not > proceed to underlying devices. It should be performed by this callback > function, if needed. > > Signed-off-by: Pavel Dovgalyuk > --- > block/io.c | 6 ++++++ > include/block/block_int.h | 7 +++++++ > 2 files changed, 13 insertions(+), 0 deletions(-) > > diff --git a/block/io.c b/block/io.c > index a69bfc4..9e05dfe 100644 > --- a/block/io.c > +++ b/block/io.c > @@ -2369,6 +2369,12 @@ int coroutine_fn bdrv_co_flush(BlockDriverState *bs) > } > > tracked_request_begin(&req, bs, 0, 0, BDRV_TRACKED_FLUSH); > + /* Write back all layers by calling one driver function */ > + if (bs->drv->bdrv_co_flush) { > + ret = bs->drv->bdrv_co_flush(bs); > + goto out; > + } > + Trailing whitespace. Also, while you update the formatting, how about an empty line before the comment? > /* Write back cached data to the OS even with cache=unsafe */ > BLKDBG_EVENT(bs->file, BLKDBG_FLUSH_TO_OS); > if (bs->drv->bdrv_co_flush_to_os) { > diff --git a/include/block/block_int.h b/include/block/block_int.h > index 9ef823a..9cc2c58 100644 > --- a/include/block/block_int.h > +++ b/include/block/block_int.h > @@ -176,6 +176,13 @@ struct BlockDriver { > int (*bdrv_inactivate)(BlockDriverState *bs); > > /* > + * Flushes all data for all layers by calling bdrv_co_flush for underlying > + * layers, if needed. This function is needed for deterministic > + * synchronization of the flush finishing callback. > + */ > + int coroutine_fn (*bdrv_co_flush)(BlockDriverState *bs); > + Trailing whitespace again. Otherwise, the patch looks good. Kevin