xen: Don't peek behind the BlockDriverState abstraction
First offender is xen_config_dev_blk()'s use of disk->bdrv->filename. Get the filename from disk->opts instead. Same result, except for snapshots: there, we now get the filename specified by the user instead of the name of the temporary image created by bdrv_open(). Should be an improvement. Second offender is blk_init()'s use of blkdev->bs->drv->format_name. Simply use the appropriate interface to get the format name. Signed-off-by: Markus Armbruster <armbru@redhat.com> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
		
							parent
							
								
									8814a05112
								
							
						
					
					
						commit
						093003b1d3
					
				| @ -1,6 +1,5 @@ | ||||
| #include "xen_backend.h" | ||||
| #include "blockdev.h" | ||||
| #include "block_int.h" /* XXX */ | ||||
| 
 | ||||
| /* ------------------------------------------------------------- */ | ||||
| 
 | ||||
| @ -99,10 +98,11 @@ int xen_config_dev_blk(DriveInfo *disk) | ||||
|     int cdrom = disk->media_cd; | ||||
|     const char *devtype = cdrom ? "cdrom" : "disk"; | ||||
|     const char *mode    = cdrom ? "r"     : "w"; | ||||
|     const char *filename = qemu_opt_get(disk->opts, "file"); | ||||
| 
 | ||||
|     snprintf(device_name, sizeof(device_name), "xvd%c", 'a' + disk->unit); | ||||
|     xen_be_printf(NULL, 1, "config disk %d [%s]: %s\n", | ||||
|                   disk->unit, device_name, disk->bdrv->filename); | ||||
|                   disk->unit, device_name, filename); | ||||
|     xen_config_dev_dirs("vbd", "qdisk", vdev, fe, be, sizeof(fe)); | ||||
| 
 | ||||
|     /* frontend */ | ||||
| @ -112,7 +112,7 @@ int xen_config_dev_blk(DriveInfo *disk) | ||||
|     /* backend */ | ||||
|     xenstore_write_str(be, "dev",             device_name); | ||||
|     xenstore_write_str(be, "type",            "file"); | ||||
|     xenstore_write_str(be, "params",          disk->bdrv->filename); | ||||
|     xenstore_write_str(be, "params",          filename); | ||||
|     xenstore_write_str(be, "mode",            mode); | ||||
| 
 | ||||
|     /* common stuff */ | ||||
|  | ||||
| @ -40,7 +40,6 @@ | ||||
| #include <xen/io/xenbus.h> | ||||
| 
 | ||||
| #include "hw.h" | ||||
| #include "block_int.h" | ||||
| #include "qemu-char.h" | ||||
| #include "xen_blkif.h" | ||||
| #include "xen_backend.h" | ||||
| @ -650,7 +649,7 @@ static int blk_init(struct XenDevice *xendev) | ||||
|     if (blkdev->file_size < 0) { | ||||
|         xen_be_printf(&blkdev->xendev, 1, "bdrv_getlength: %d (%s) | drv %s\n", | ||||
|                       (int)blkdev->file_size, strerror(-blkdev->file_size), | ||||
|                       blkdev->bs->drv ? blkdev->bs->drv->format_name : "-"); | ||||
|                       bdrv_get_format_name(blkdev->bs) ?: "-"); | ||||
|         blkdev->file_size = 0; | ||||
|     } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Markus Armbruster
						Markus Armbruster