block: Assert !bs->refcnt in bdrv_close()
The only caller of bdrv_close() left is bdrv_delete(). We may as well assert that, in a way (there are some things in bdrv_close() that make more sense under that assumption, such as the call to bdrv_release_all_dirty_bitmaps() which in turn assumes that no frozen bitmaps are attached to the BDS). In addition, being called only in bdrv_delete() means that we can drop bdrv_close()'s forward declaration at the top of block.c. Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Alberto Garcia <berto@igalia.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
		
							parent
							
								
									5b3639371c
								
							
						
					
					
						commit
						30f55fb81f
					
				
							
								
								
									
										3
									
								
								block.c
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								block.c
									
									
									
									
									
								
							@ -74,8 +74,6 @@ static BlockDriverState *bdrv_open_inherit(const char *filename,
 | 
				
			|||||||
/* If non-zero, use only whitelisted block drivers */
 | 
					/* If non-zero, use only whitelisted block drivers */
 | 
				
			||||||
static int use_bdrv_whitelist;
 | 
					static int use_bdrv_whitelist;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void bdrv_close(BlockDriverState *bs);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifdef _WIN32
 | 
					#ifdef _WIN32
 | 
				
			||||||
static int is_windows_drive_prefix(const char *filename)
 | 
					static int is_windows_drive_prefix(const char *filename)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -2110,6 +2108,7 @@ static void bdrv_close(BlockDriverState *bs)
 | 
				
			|||||||
    BdrvAioNotifier *ban, *ban_next;
 | 
					    BdrvAioNotifier *ban, *ban_next;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    assert(!bs->job);
 | 
					    assert(!bs->job);
 | 
				
			||||||
 | 
					    assert(!bs->refcnt);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    bdrv_drained_begin(bs); /* complete I/O */
 | 
					    bdrv_drained_begin(bs); /* complete I/O */
 | 
				
			||||||
    bdrv_flush(bs);
 | 
					    bdrv_flush(bs);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user