block/raw-posix: bdrv_parse_filename() for cdrom
The "host_cdrom" protocol drivers should strip the "host_cdrom:" prefix from filenames if present. Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Benoit Canet <benoit@irqsave.net> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
		
							parent
							
								
									d3f4984583
								
							
						
					
					
						commit
						18fa1c42a3
					
				| @ -1983,7 +1983,20 @@ static BlockDriver bdrv_host_floppy = { | ||||
|     .bdrv_media_changed = floppy_media_changed, | ||||
|     .bdrv_eject         = floppy_eject, | ||||
| }; | ||||
| #endif | ||||
| 
 | ||||
| #if defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) | ||||
| static void cdrom_parse_filename(const char *filename, QDict *options, | ||||
|                                  Error **errp) | ||||
| { | ||||
|     /* The prefix is optional, just as for "file". */ | ||||
|     strstart(filename, "host_cdrom:", &filename); | ||||
| 
 | ||||
|     qdict_put_obj(options, "filename", QOBJECT(qstring_from_str(filename))); | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| #ifdef __linux__ | ||||
| static int cdrom_open(BlockDriverState *bs, QDict *options, int flags, | ||||
|                       Error **errp) | ||||
| { | ||||
| @ -2070,6 +2083,7 @@ static BlockDriver bdrv_host_cdrom = { | ||||
|     .instance_size      = sizeof(BDRVRawState), | ||||
|     .bdrv_needs_filename = true, | ||||
|     .bdrv_probe_device	= cdrom_probe_device, | ||||
|     .bdrv_parse_filename = cdrom_parse_filename, | ||||
|     .bdrv_file_open     = cdrom_open, | ||||
|     .bdrv_close         = raw_close, | ||||
|     .bdrv_reopen_prepare = raw_reopen_prepare, | ||||
| @ -2200,6 +2214,7 @@ static BlockDriver bdrv_host_cdrom = { | ||||
|     .instance_size      = sizeof(BDRVRawState), | ||||
|     .bdrv_needs_filename = true, | ||||
|     .bdrv_probe_device	= cdrom_probe_device, | ||||
|     .bdrv_parse_filename = cdrom_parse_filename, | ||||
|     .bdrv_file_open     = cdrom_open, | ||||
|     .bdrv_close         = raw_close, | ||||
|     .bdrv_reopen_prepare = raw_reopen_prepare, | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Max Reitz
						Max Reitz