mirror of https://github.com/xemu-project/xemu.git
qed: adjust the way to get nb_sectors
This patch is only to refactor some lines of codes to get better and more robust codes. As you have seen, in qed_read_table_cb() it's nice to use qiov->size because that function doesn't obviously use a single struct iovec. In other two functions, if qiov use more than one struct iovec, the existing way will get wrong nb_sectors. To make the code more robust, it will be nicer to refactor the existing way as below. Signed-off-by: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com> Acked-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
aef4acb661
commit
23e9a39e7d
|
@ -29,7 +29,7 @@ static void qed_read_table_cb(void *opaque, int ret)
|
||||||
{
|
{
|
||||||
QEDReadTableCB *read_table_cb = opaque;
|
QEDReadTableCB *read_table_cb = opaque;
|
||||||
QEDTable *table = read_table_cb->table;
|
QEDTable *table = read_table_cb->table;
|
||||||
int noffsets = read_table_cb->iov.iov_len / sizeof(uint64_t);
|
int noffsets = read_table_cb->qiov.size / sizeof(uint64_t);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* Handle I/O error */
|
/* Handle I/O error */
|
||||||
|
@ -65,7 +65,7 @@ static void qed_read_table(BDRVQEDState *s, uint64_t offset, QEDTable *table,
|
||||||
|
|
||||||
qemu_iovec_init_external(qiov, &read_table_cb->iov, 1);
|
qemu_iovec_init_external(qiov, &read_table_cb->iov, 1);
|
||||||
aiocb = bdrv_aio_readv(s->bs->file, offset / BDRV_SECTOR_SIZE, qiov,
|
aiocb = bdrv_aio_readv(s->bs->file, offset / BDRV_SECTOR_SIZE, qiov,
|
||||||
read_table_cb->iov.iov_len / BDRV_SECTOR_SIZE,
|
qiov->size / BDRV_SECTOR_SIZE,
|
||||||
qed_read_table_cb, read_table_cb);
|
qed_read_table_cb, read_table_cb);
|
||||||
if (!aiocb) {
|
if (!aiocb) {
|
||||||
qed_read_table_cb(read_table_cb, -EIO);
|
qed_read_table_cb(read_table_cb, -EIO);
|
||||||
|
@ -160,7 +160,7 @@ static void qed_write_table(BDRVQEDState *s, uint64_t offset, QEDTable *table,
|
||||||
|
|
||||||
aiocb = bdrv_aio_writev(s->bs->file, offset / BDRV_SECTOR_SIZE,
|
aiocb = bdrv_aio_writev(s->bs->file, offset / BDRV_SECTOR_SIZE,
|
||||||
&write_table_cb->qiov,
|
&write_table_cb->qiov,
|
||||||
write_table_cb->iov.iov_len / BDRV_SECTOR_SIZE,
|
write_table_cb->qiov.size / BDRV_SECTOR_SIZE,
|
||||||
qed_write_table_cb, write_table_cb);
|
qed_write_table_cb, write_table_cb);
|
||||||
if (!aiocb) {
|
if (!aiocb) {
|
||||||
qed_write_table_cb(write_table_cb, -EIO);
|
qed_write_table_cb(write_table_cb, -EIO);
|
||||||
|
|
Loading…
Reference in New Issue