From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LhUgO-0005w4-9b for qemu-devel@nongnu.org; Wed, 11 Mar 2009 16:05:40 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LhUgN-0005vX-Fc for qemu-devel@nongnu.org; Wed, 11 Mar 2009 16:05:39 -0400 Received: from [199.232.76.173] (port=40247 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LhUgN-0005vK-9Q for qemu-devel@nongnu.org; Wed, 11 Mar 2009 16:05:39 -0400 Received: from savannah.gnu.org ([199.232.41.3]:41910 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 1LhUgM-0007rI-RC for qemu-devel@nongnu.org; Wed, 11 Mar 2009 16:05:39 -0400 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1LhUgM-0004xK-CH for qemu-devel@nongnu.org; Wed, 11 Mar 2009 20:05:38 +0000 Received: from aliguori by cvs.savannah.gnu.org with local (Exim 4.69) (envelope-from ) id 1LhUgM-0004xG-5m for qemu-devel@nongnu.org; Wed, 11 Mar 2009 20:05:38 +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: Wed, 11 Mar 2009 20:05:38 +0000 Subject: [Qemu-devel] [6816] Revert r6404 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: 6816 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6816 Author: aliguori Date: 2009-03-11 20:05:37 +0000 (Wed, 11 Mar 2009) Log Message: ----------- Revert r6404 This series is broken by design as it requires expensive IO operations at open time causing very long delays when starting a virtual machine for the first time. Signed-off-by: Anthony Liguori Modified Paths: -------------- trunk/block-qcow2.c Modified: trunk/block-qcow2.c =================================================================== --- trunk/block-qcow2.c 2009-03-11 20:05:33 UTC (rev 6815) +++ trunk/block-qcow2.c 2009-03-11 20:05:37 UTC (rev 6816) @@ -143,9 +143,6 @@ uint32_t crypt_method_header; AES_KEY aes_encrypt_key; AES_KEY aes_decrypt_key; - - int64_t highest_alloc; /* highest cluester allocated (in clusters) */ - uint64_t snapshots_offset; int snapshots_size; int nb_snapshots; @@ -173,9 +170,7 @@ #ifdef DEBUG_ALLOC static void check_refcounts(BlockDriverState *bs); #endif -static void scan_refcount(BlockDriverState *bs, int64_t *high); - static int qcow_probe(const uint8_t *buf, int buf_size, const char *filename) { const QCowHeader *cow_header = (const void *)buf; @@ -275,8 +270,6 @@ if (refcount_init(bs) < 0) goto fail; - scan_refcount(bs, &s->highest_alloc); - /* read the backing file name */ if (header.backing_file_offset != 0) { len = header.backing_file_size; @@ -2163,29 +2156,6 @@ return 0; } -static void scan_refcount(BlockDriverState *bs, int64_t *high) -{ - BDRVQcowState *s = bs->opaque; - int64_t refcnt_index, cluster_index, cluster_end, h = 0; - - for (refcnt_index=0; refcnt_index < s->refcount_table_size; refcnt_index++){ - if (s->refcount_table[refcnt_index] == 0) { - continue; - } - cluster_index = refcnt_index << (s->cluster_bits - REFCOUNT_SHIFT); - cluster_end = (refcnt_index + 1) << (s->cluster_bits - REFCOUNT_SHIFT); - for ( ; cluster_index < cluster_end; cluster_index++) { - if (get_refcount(bs, cluster_index) == 0) - /* do nothing -- reserved for free counting */; - else - h = cluster_index; - } - } - - if (high) - *high = (h+1); -} - static int get_refcount(BlockDriverState *bs, int64_t cluster_index) { BDRVQcowState *s = bs->opaque; @@ -2226,10 +2196,6 @@ size, (s->free_cluster_index - nb_clusters) << s->cluster_bits); #endif - - if (s->highest_alloc < s->free_cluster_index) - s->highest_alloc = s->free_cluster_index; - return (s->free_cluster_index - nb_clusters) << s->cluster_bits; }