block: Make find_image_format() return 'raw' BlockDriver for SG_IO devices
This patch adds a special BlockDriverState->sg check in block.c:find_image_format()
after bdrv_file_open() -> block/raw-posix.c:hdev_open() has been called to determine
if we are dealing with a Linux host scsi-generic device.
The patch then returns the BlockDriver * from bdrv_find_format("raw"), skipping the
subsequent bdrv_read() and rest of find_image_format().
Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
77be4366ba
commit
f8ea0b00e0
1 changed files with 5 additions and 0 deletions
5
block.c
5
block.c
|
|
@ -329,6 +329,11 @@ static BlockDriver *find_image_format(const char *filename)
|
|||
ret = bdrv_file_open(&bs, filename, 0);
|
||||
if (ret < 0)
|
||||
return NULL;
|
||||
|
||||
/* Return the raw BlockDriver * to scsi-generic devices */
|
||||
if (bs->sg)
|
||||
return bdrv_find_format("raw");
|
||||
|
||||
ret = bdrv_pread(bs, 0, buf, sizeof(buf));
|
||||
bdrv_delete(bs);
|
||||
if (ret < 0) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue