From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35666) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yqi3L-0005bH-Cz for qemu-devel@nongnu.org; Fri, 08 May 2015 09:10:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yqi3K-0001Ix-BC for qemu-devel@nongnu.org; Fri, 08 May 2015 09:10:55 -0400 Message-ID: <554CB5D5.8090509@redhat.com> Date: Fri, 08 May 2015 15:10:45 +0200 From: Max Reitz MIME-Version: 1.0 References: <1430971496-32659-1-git-send-email-phoeagon@gmail.com> In-Reply-To: <1430971496-32659-1-git-send-email-phoeagon@gmail.com> Content-Type: text/plain; charset=iso-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v3] block/vdi: Use bdrv_flush after metadata updates List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Zhe Qiu , qemu-devel@nongnu.org Cc: qemu-block@nongnu.org On 07.05.2015 06:04, Zhe Qiu wrote: > From: phoeagon > > In reference to b0ad5a455d7e5352d4c86ba945112011dbeadfb8~078a458e077d6b0db262c4b05fee51d01de2d1d2, metadata writes to qcow2/cow/qcow/vpc/vmdk are all synced prior to succeeding writes. > > Only when write is successful that bdrv_flush is called. > > Signed-off-by: Zhe Qiu > --- > block/vdi.c | 3 +++ > 1 file changed, 3 insertions(+) Reviewed-by: Max Reitz Thanks! > diff --git a/block/vdi.c b/block/vdi.c > index 7642ef3..dfe8ade 100644 > --- a/block/vdi.c > +++ b/block/vdi.c > @@ -713,6 +713,9 @@ static int vdi_co_write(BlockDriverState *bs, > logout("will write %u block map sectors starting from entry %u\n", > n_sectors, bmap_first); > ret = bdrv_write(bs->file, offset, base, n_sectors); > + if (ret >= 0) { > + ret = bdrv_flush(bs->file); > + } > } > > return ret;