qcow2: Fix "total clusters" number in bdrv_check
This should be based on the virtual disk size, not on the size of the image. Interesting observation: With some VM state stored in the image file, percentages higher than 100% are possible, even though snapshots themselves are ignored. This is a qcow2 bug to be fixed another day: The VM state should be discarded in the active L2 tables after completing the snapshot creation. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
		
							parent
							
								
									6f74928192
								
							
						
					
					
						commit
						c349ca4bb2
					
				@ -1152,9 +1152,11 @@ int qcow2_check_refcounts(BlockDriverState *bs, BdrvCheckResult *res,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    size = bdrv_getlength(bs->file);
 | 
					    size = bdrv_getlength(bs->file);
 | 
				
			||||||
    nb_clusters = size_to_clusters(s, size);
 | 
					    nb_clusters = size_to_clusters(s, size);
 | 
				
			||||||
    res->bfi.total_clusters = nb_clusters;
 | 
					 | 
				
			||||||
    refcount_table = g_malloc0(nb_clusters * sizeof(uint16_t));
 | 
					    refcount_table = g_malloc0(nb_clusters * sizeof(uint16_t));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    res->bfi.total_clusters =
 | 
				
			||||||
 | 
					        size_to_clusters(s, bs->total_sectors * BDRV_SECTOR_SIZE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* header */
 | 
					    /* header */
 | 
				
			||||||
    inc_refcounts(bs, res, refcount_table, nb_clusters,
 | 
					    inc_refcounts(bs, res, refcount_table, nb_clusters,
 | 
				
			||||||
        0, s->cluster_size);
 | 
					        0, s->cluster_size);
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
No errors were found on the image.
 | 
					No errors were found on the image.
 | 
				
			||||||
7292415/8391499= 86.90% allocated, 0.00% fragmented, 0.00% compressed clusters
 | 
					7292415/33554432 = 21.73% allocated, 0.00% fragmented, 0.00% compressed clusters
 | 
				
			||||||
Image end offset: 4296447488
 | 
					Image end offset: 4296447488
 | 
				
			||||||
.
 | 
					.
 | 
				
			||||||
----------------------------------------------------------------------
 | 
					----------------------------------------------------------------------
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user