diff options
author | Thomas Huth <thuth@redhat.com> | 2019-01-23 09:56:01 +0100 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2019-02-01 13:46:45 +0100 |
commit | d09ea2d22786e97c5c03cd4d4888f06bb89f8dc7 (patch) | |
tree | 24098564029ef4ce663faa7556ad64ad9f990c99 /block/block-backend.c | |
parent | 8be25de64315ef768353eb61f2b2bf6cddc34230 (diff) |
block: Remove blk_attach_dev_legacy() / legacy_dev code
The last user of blk_attach_dev_legacy() was the code in xen_disk which
has recently been reworked. Now there is no user for this legacy function
anymore. Thus we can finally remove all code related to the "legacy_dev"
flag, too, and turn the related "void *" in block-backend.c into proper
"DeviceState *" to fix some of the remaining TODOs there.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block/block-backend.c')
-rw-r--r-- | block/block-backend.c | 54 |
1 files changed, 9 insertions, 45 deletions
diff --git a/block/block-backend.c b/block/block-backend.c index f0be0d9039..f6ea824308 100644 --- a/block/block-backend.c +++ b/block/block-backend.c @@ -47,9 +47,7 @@ struct BlockBackend { QTAILQ_ENTRY(BlockBackend) monitor_link; /* for monitor_block_backends */ BlockBackendPublic public; - void *dev; /* attached device model, if any */ - bool legacy_dev; /* true if dev is not a DeviceState */ - /* TODO change to DeviceState when all users are qdevified */ + DeviceState *dev; /* attached device model, if any */ const BlockDevOps *dev_ops; void *dev_opaque; @@ -836,7 +834,11 @@ void blk_get_perm(BlockBackend *blk, uint64_t *perm, uint64_t *shared_perm) *shared_perm = blk->shared_perm; } -static int blk_do_attach_dev(BlockBackend *blk, void *dev) +/* + * Attach device model @dev to @blk. + * Return 0 on success, -EBUSY when a device model is attached already. + */ +int blk_attach_dev(BlockBackend *blk, DeviceState *dev) { if (blk->dev) { return -EBUSY; @@ -851,40 +853,16 @@ static int blk_do_attach_dev(BlockBackend *blk, void *dev) blk_ref(blk); blk->dev = dev; - blk->legacy_dev = false; blk_iostatus_reset(blk); return 0; } /* - * Attach device model @dev to @blk. - * Return 0 on success, -EBUSY when a device model is attached already. - */ -int blk_attach_dev(BlockBackend *blk, DeviceState *dev) -{ - return blk_do_attach_dev(blk, dev); -} - -/* - * Attach device model @dev to @blk. - * @blk must not have a device model attached already. - * TODO qdevified devices don't use this, remove when devices are qdevified - */ -void blk_attach_dev_legacy(BlockBackend *blk, void *dev) -{ - if (blk_do_attach_dev(blk, dev) < 0) { - abort(); - } - blk->legacy_dev = true; -} - -/* * Detach device model @dev from @blk. * @dev must be currently attached to @blk. */ -void blk_detach_dev(BlockBackend *blk, void *dev) -/* TODO change to DeviceState *dev when all users are qdevified */ +void blk_detach_dev(BlockBackend *blk, DeviceState *dev) { assert(blk->dev == dev); blk->dev = NULL; @@ -898,8 +876,7 @@ void blk_detach_dev(BlockBackend *blk, void *dev) /* * Return the device model attached to @blk if any, else null. */ -void *blk_get_attached_dev(BlockBackend *blk) -/* TODO change to return DeviceState * when all users are qdevified */ +DeviceState *blk_get_attached_dev(BlockBackend *blk) { return blk->dev; } @@ -908,10 +885,7 @@ void *blk_get_attached_dev(BlockBackend *blk) * device attached to the BlockBackend. */ char *blk_get_attached_dev_id(BlockBackend *blk) { - DeviceState *dev; - - assert(!blk->legacy_dev); - dev = blk->dev; + DeviceState *dev = blk->dev; if (!dev) { return g_strdup(""); @@ -949,11 +923,6 @@ BlockBackend *blk_by_dev(void *dev) void blk_set_dev_ops(BlockBackend *blk, const BlockDevOps *ops, void *opaque) { - /* All drivers that use blk_set_dev_ops() are qdevified and we want to keep - * it that way, so we can assume blk->dev, if present, is a DeviceState if - * blk->dev_ops is set. Non-device users may use dev_ops without device. */ - assert(!blk->legacy_dev); - blk->dev_ops = ops; blk->dev_opaque = opaque; @@ -979,8 +948,6 @@ void blk_dev_change_media_cb(BlockBackend *blk, bool load, Error **errp) bool tray_was_open, tray_is_open; Error *local_err = NULL; - assert(!blk->legacy_dev); - tray_was_open = blk_dev_is_tray_open(blk); blk->dev_ops->change_media_cb(blk->dev_opaque, load, &local_err); if (local_err) { @@ -1783,9 +1750,6 @@ void blk_eject(BlockBackend *blk, bool eject_flag) BlockDriverState *bs = blk_bs(blk); char *id; - /* blk_eject is only called by qdevified devices */ - assert(!blk->legacy_dev); - if (bs) { bdrv_eject(bs, eject_flag); } |