[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 08/23] block: Eliminate BlockDriverState memb
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v2 08/23] block: Eliminate BlockDriverState member device_name[] |
Date: |
Tue, 16 Sep 2014 16:08:08 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
Benoît Canet <address@hidden> writes:
>> #include "qemu-common.h"
>> -#include "block/block_int.h"
>> +#include "block/block.h"
>> +#include "qemu/error-report.h"
>> +#include "qemu/main-loop.h"
>
> That's a lot of include fiddling I am not sure to understand them while
> looking
> at the following diff.
Before the patch, we need block_int.h because we dereference bs.
After the patch, we don't, so I can drop block_int.h. But then I have
to add back those includes included by block_int.h we actually need
here.
>> #include "hw/hw.h"
>> #include "qemu/queue.h"
>> #include "qemu/timer.h"
>> @@ -130,9 +132,9 @@ static void blk_send(QEMUFile *f, BlkMigBlock * blk)
>> | flags);
>>
>> /* device name */
>> - len = strlen(blk->bmds->bs->device_name);
>> + len = strlen(bdrv_get_device_name(blk->bmds->bs));
>> qemu_put_byte(f, len);
>> - qemu_put_buffer(f, (uint8_t *)blk->bmds->bs->device_name, len);
>> + qemu_put_buffer(f, (uint8_t *)bdrv_get_device_name(blk->bmds->bs), len);
>>
>> /* if a block is zero we need to flush here since the network
>> * bandwidth is now a lot higher than the storage device bandwidth.
>> @@ -382,9 +384,9 @@ static void init_blk_migration(QEMUFile *f)
>>
>> if (bmds->shared_base) {
>> DPRINTF("Start migration for %s with shared base image\n",
>> - bs->device_name);
>> + bdrv_get_device_name(bs));
>> } else {
>> - DPRINTF("Start full migration for %s\n", bs->device_name);
>> + DPRINTF("Start full migration for %s\n",
>> bdrv_get_device_name(bs));
>> }
>>
>> QSIMPLEQ_INSERT_TAIL(&block_mig_state.bmds_list, bmds, entry);
>
>
>> @@ -1959,10 +1941,10 @@ void bdrv_drain_all(void)
>> V Also, NULL terminate the device_name to prevent double remove */
>> void bdrv_make_anon(BlockDriverState *bs)
>> {
>> - if (bs->device_name[0] != '\0') {
>
>
>> + if (bs->device_list.tqe_prev) {
>> QTAILQ_REMOVE(&bdrv_states, bs, device_list);
>> + bs->device_list.tqe_prev = NULL;
>
> I think a comments explaining the trick you are doing here would be worthy:
> after all you are touching directly the inner parts of a linked list and
> bypassing the list API.
Fair enough.
>> }
>> - bs->device_name[0] = '\0';
>> if (bs->node_name[0] != '\0') {
>> QTAILQ_REMOVE(&graph_bdrv_states, bs, node_list);
>> }
- Re: [Qemu-devel] [PATCH v2 09/23] block: Merge BlockBackend and BlockDriverState name spaces, (continued)
[Qemu-devel] [PATCH v2 08/23] block: Eliminate BlockDriverState member device_name[], Markus Armbruster, 2014/09/13
[Qemu-devel] [PATCH v2 03/23] block: Connect BlockBackend to BlockDriverState, Markus Armbruster, 2014/09/13
[Qemu-devel] [PATCH v2 12/23] virtio-blk: Drop redundant VirtIOBlock member conf, Markus Armbruster, 2014/09/13
[Qemu-devel] [PATCH v2 13/23] virtio-blk: Rename VirtIOBlkConf variables to conf, Markus Armbruster, 2014/09/13
[Qemu-devel] [PATCH v2 01/23] block: Split bdrv_new_root() off bdrv_new(), Markus Armbruster, 2014/09/13