mirror of https://github.com/xqemu/xqemu.git
raw-posix: Don't use bdrv_ioctl()
Instead of letting raw-posix use the bdrv_ioctl() abstraction to issue an ioctl to itself, just call ioctl() directly. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
48af776a5b
commit
0d4377b3ea
|
@ -2069,13 +2069,23 @@ static bool hdev_is_sg(BlockDriverState *bs)
|
||||||
|
|
||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
|
|
||||||
|
BDRVRawState *s = bs->opaque;
|
||||||
struct stat st;
|
struct stat st;
|
||||||
struct sg_scsi_id scsiid;
|
struct sg_scsi_id scsiid;
|
||||||
int sg_version;
|
int sg_version;
|
||||||
|
int ret;
|
||||||
|
|
||||||
if (stat(bs->filename, &st) >= 0 && S_ISCHR(st.st_mode) &&
|
if (stat(bs->filename, &st) < 0 || !S_ISCHR(st.st_mode)) {
|
||||||
!bdrv_ioctl(bs, SG_GET_VERSION_NUM, &sg_version) &&
|
return false;
|
||||||
!bdrv_ioctl(bs, SG_GET_SCSI_ID, &scsiid)) {
|
}
|
||||||
|
|
||||||
|
ret = ioctl(s->fd, SG_GET_VERSION_NUM, &sg_version);
|
||||||
|
if (ret < 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = ioctl(s->fd, SG_GET_SCSI_ID, &scsiid);
|
||||||
|
if (ret >= 0) {
|
||||||
DPRINTF("SG device found: type=%d, version=%d\n",
|
DPRINTF("SG device found: type=%d, version=%d\n",
|
||||||
scsiid.scsi_type, sg_version);
|
scsiid.scsi_type, sg_version);
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in New Issue