close all the block drivers before the qemu process exits
This patch calls the close handler of the block driver before the qemu process exits. This is necessary because the sheepdog block driver releases the lock of VM images in the close handler. Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
		
				
					committed by
					
						
						Kevin Wolf
					
				
			
			
				
	
			
			
			
						parent
						
							08a00559f0
						
					
				
				
					commit
					2bc93fed76
				
			
							
								
								
									
										9
									
								
								block.c
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								block.c
									
									
									
									
									
								
							@@ -648,6 +648,15 @@ void bdrv_close(BlockDriverState *bs)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void bdrv_close_all(void)
 | 
			
		||||
{
 | 
			
		||||
    BlockDriverState *bs;
 | 
			
		||||
 | 
			
		||||
    QTAILQ_FOREACH(bs, &bdrv_states, list) {
 | 
			
		||||
        bdrv_close(bs);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void bdrv_delete(BlockDriverState *bs)
 | 
			
		||||
{
 | 
			
		||||
    /* remove from list, if necessary */
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								block.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								block.h
									
									
									
									
									
								
							@@ -123,6 +123,7 @@ BlockDriverAIOCB *bdrv_aio_ioctl(BlockDriverState *bs,
 | 
			
		||||
/* Ensure contents are flushed to disk.  */
 | 
			
		||||
void bdrv_flush(BlockDriverState *bs);
 | 
			
		||||
void bdrv_flush_all(void);
 | 
			
		||||
void bdrv_close_all(void);
 | 
			
		||||
 | 
			
		||||
int bdrv_has_zero_init(BlockDriverState *bs);
 | 
			
		||||
int bdrv_is_allocated(BlockDriverState *bs, int64_t sector_num, int nb_sectors,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user