block: use bdrv_is_sg() helper instead of raw bs->sg reading
I believe that if the helper exists, it must be used always for reading of the value. It breaks expectations in the other case. Signed-off-by: Denis V. Lunev <den@openvz.org> CC: Kevin Wolf <kwolf@redhat.com> CC: Hanna Reitz <hreitz@redhat.com> CC: Stefan Hajnoczi <stefanha@redhat.com> CC: Fam Zheng <fam@euphon.net> CC: Ronnie Sahlberg <ronniesahlberg@gmail.com> CC: Paolo Bonzini <pbonzini@redhat.com> CC: Peter Lieven <pl@kamp.de> CC: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> Message-Id: <20220817083736.40981-2-den@openvz.org> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
62a6c300f1
commit
006e196244
|
@ -1295,7 +1295,7 @@ static void raw_refresh_limits(BlockDriverState *bs, Error **errp)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (bs->sg || S_ISBLK(st.st_mode)) {
|
if (bdrv_is_sg(bs) || S_ISBLK(st.st_mode)) {
|
||||||
int ret = hdev_get_max_hw_transfer(s->fd, &st);
|
int ret = hdev_get_max_hw_transfer(s->fd, &st);
|
||||||
|
|
||||||
if (ret > 0 && ret <= BDRV_REQUEST_MAX_BYTES) {
|
if (ret > 0 && ret <= BDRV_REQUEST_MAX_BYTES) {
|
||||||
|
|
|
@ -2065,7 +2065,7 @@ static void iscsi_refresh_limits(BlockDriverState *bs, Error **errp)
|
||||||
uint64_t max_xfer_len = iscsilun->use_16_for_rw ? 0xffffffff : 0xffff;
|
uint64_t max_xfer_len = iscsilun->use_16_for_rw ? 0xffffffff : 0xffff;
|
||||||
unsigned int block_size = MAX(BDRV_SECTOR_SIZE, iscsilun->block_size);
|
unsigned int block_size = MAX(BDRV_SECTOR_SIZE, iscsilun->block_size);
|
||||||
|
|
||||||
assert(iscsilun->block_size >= BDRV_SECTOR_SIZE || bs->sg);
|
assert(iscsilun->block_size >= BDRV_SECTOR_SIZE || bdrv_is_sg(bs));
|
||||||
|
|
||||||
bs->bl.request_alignment = block_size;
|
bs->bl.request_alignment = block_size;
|
||||||
|
|
||||||
|
|
|
@ -463,7 +463,7 @@ static int raw_open(BlockDriverState *bs, QDict *options, int flags,
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
bs->sg = bs->file->bs->sg;
|
bs->sg = bdrv_is_sg(bs->file->bs);
|
||||||
bs->supported_write_flags = BDRV_REQ_WRITE_UNCHANGED |
|
bs->supported_write_flags = BDRV_REQ_WRITE_UNCHANGED |
|
||||||
(BDRV_REQ_FUA & bs->file->bs->supported_write_flags);
|
(BDRV_REQ_FUA & bs->file->bs->supported_write_flags);
|
||||||
bs->supported_zero_flags = BDRV_REQ_WRITE_UNCHANGED |
|
bs->supported_zero_flags = BDRV_REQ_WRITE_UNCHANGED |
|
||||||
|
@ -489,7 +489,7 @@ static int raw_open(BlockDriverState *bs, QDict *options, int flags,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bs->sg && (s->offset || s->has_size)) {
|
if (bdrv_is_sg(bs) && (s->offset || s->has_size)) {
|
||||||
error_setg(errp, "Cannot use offset/size with SCSI generic devices");
|
error_setg(errp, "Cannot use offset/size with SCSI generic devices");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue