From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KmqYt-0007Bj-Bu for qemu-devel@nongnu.org; Mon, 06 Oct 2008 09:55:47 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KmqYr-0007BQ-U4 for qemu-devel@nongnu.org; Mon, 06 Oct 2008 09:55:46 -0400 Received: from [199.232.76.173] (port=45850 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KmqYr-0007BN-Kx for qemu-devel@nongnu.org; Mon, 06 Oct 2008 09:55:45 -0400 Received: from savannah.gnu.org ([199.232.41.3]:38038 helo=sv.gnu.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KmqYr-0004F7-8A for qemu-devel@nongnu.org; Mon, 06 Oct 2008 09:55:45 -0400 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.63) (envelope-from ) id 1KmqYq-0007Tf-MF for qemu-devel@nongnu.org; Mon, 06 Oct 2008 13:55:44 +0000 Received: from aliguori by cvs.savannah.gnu.org with local (Exim 4.63) (envelope-from ) id 1KmqYq-0007TY-An for qemu-devel@nongnu.org; Mon, 06 Oct 2008 13:55:44 +0000 MIME-Version: 1.0 Errors-To: aliguori Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Anthony Liguori Message-Id: Date: Mon, 06 Oct 2008 13:55:44 +0000 Subject: [Qemu-devel] [5432] Add bdrv_flush_all() Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Revision: 5432 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5432 Author: aliguori Date: 2008-10-06 13:55:43 +0000 (Mon, 06 Oct 2008) Log Message: ----------- Add bdrv_flush_all() This patch adds a bdrv_flush_all() function. It's necessary to ensure that all IO operations have been flushed to disk before completely a live migration. N.B. we don't actually use this now. We really should flush the block drivers using an live savevm callback to avoid unnecessary guest down time. Signed-off-by: Anthony Liguori Modified Paths: -------------- trunk/block.c trunk/block.h Modified: trunk/block.c =================================================================== --- trunk/block.c 2008-10-06 13:52:44 UTC (rev 5431) +++ trunk/block.c 2008-10-06 13:55:43 UTC (rev 5432) @@ -895,6 +895,16 @@ bdrv_flush(bs->backing_hd); } +void bdrv_flush_all(void) +{ + BlockDriverState *bs; + + for (bs = bdrv_first; bs != NULL; bs = bs->next) + if (bs->drv && !bdrv_is_read_only(bs) && + (!bdrv_is_removable(bs) || bdrv_is_inserted(bs))) + bdrv_flush(bs); +} + /* * Returns true iff the specified sector is present in the disk image. Drivers * not implementing the functionality are assumed to not support backing files, Modified: trunk/block.h =================================================================== --- trunk/block.h 2008-10-06 13:52:44 UTC (rev 5431) +++ trunk/block.h 2008-10-06 13:55:43 UTC (rev 5432) @@ -93,6 +93,8 @@ /* Ensure contents are flushed to disk. */ void bdrv_flush(BlockDriverState *bs); +void bdrv_flush_all(void); + int bdrv_is_allocated(BlockDriverState *bs, int64_t sector_num, int nb_sectors, int *pnum);