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>
This commit is contained in:
parent
8be25de643
commit
d09ea2d227
@ -47,9 +47,7 @@ struct BlockBackend {
|
|||||||
QTAILQ_ENTRY(BlockBackend) monitor_link; /* for monitor_block_backends */
|
QTAILQ_ENTRY(BlockBackend) monitor_link; /* for monitor_block_backends */
|
||||||
BlockBackendPublic public;
|
BlockBackendPublic public;
|
||||||
|
|
||||||
void *dev; /* attached device model, if any */
|
DeviceState *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 */
|
|
||||||
const BlockDevOps *dev_ops;
|
const BlockDevOps *dev_ops;
|
||||||
void *dev_opaque;
|
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;
|
*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) {
|
if (blk->dev) {
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
@ -851,40 +853,16 @@ static int blk_do_attach_dev(BlockBackend *blk, void *dev)
|
|||||||
|
|
||||||
blk_ref(blk);
|
blk_ref(blk);
|
||||||
blk->dev = dev;
|
blk->dev = dev;
|
||||||
blk->legacy_dev = false;
|
|
||||||
blk_iostatus_reset(blk);
|
blk_iostatus_reset(blk);
|
||||||
|
|
||||||
return 0;
|
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.
|
* Detach device model @dev from @blk.
|
||||||
* @dev must be currently attached to @blk.
|
* @dev must be currently attached to @blk.
|
||||||
*/
|
*/
|
||||||
void blk_detach_dev(BlockBackend *blk, void *dev)
|
void blk_detach_dev(BlockBackend *blk, DeviceState *dev)
|
||||||
/* TODO change to DeviceState *dev when all users are qdevified */
|
|
||||||
{
|
{
|
||||||
assert(blk->dev == dev);
|
assert(blk->dev == dev);
|
||||||
blk->dev = NULL;
|
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.
|
* Return the device model attached to @blk if any, else null.
|
||||||
*/
|
*/
|
||||||
void *blk_get_attached_dev(BlockBackend *blk)
|
DeviceState *blk_get_attached_dev(BlockBackend *blk)
|
||||||
/* TODO change to return DeviceState * when all users are qdevified */
|
|
||||||
{
|
{
|
||||||
return blk->dev;
|
return blk->dev;
|
||||||
}
|
}
|
||||||
@ -908,10 +885,7 @@ void *blk_get_attached_dev(BlockBackend *blk)
|
|||||||
* device attached to the BlockBackend. */
|
* device attached to the BlockBackend. */
|
||||||
char *blk_get_attached_dev_id(BlockBackend *blk)
|
char *blk_get_attached_dev_id(BlockBackend *blk)
|
||||||
{
|
{
|
||||||
DeviceState *dev;
|
DeviceState *dev = blk->dev;
|
||||||
|
|
||||||
assert(!blk->legacy_dev);
|
|
||||||
dev = blk->dev;
|
|
||||||
|
|
||||||
if (!dev) {
|
if (!dev) {
|
||||||
return g_strdup("");
|
return g_strdup("");
|
||||||
@ -949,11 +923,6 @@ BlockBackend *blk_by_dev(void *dev)
|
|||||||
void blk_set_dev_ops(BlockBackend *blk, const BlockDevOps *ops,
|
void blk_set_dev_ops(BlockBackend *blk, const BlockDevOps *ops,
|
||||||
void *opaque)
|
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_ops = ops;
|
||||||
blk->dev_opaque = opaque;
|
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;
|
bool tray_was_open, tray_is_open;
|
||||||
Error *local_err = NULL;
|
Error *local_err = NULL;
|
||||||
|
|
||||||
assert(!blk->legacy_dev);
|
|
||||||
|
|
||||||
tray_was_open = blk_dev_is_tray_open(blk);
|
tray_was_open = blk_dev_is_tray_open(blk);
|
||||||
blk->dev_ops->change_media_cb(blk->dev_opaque, load, &local_err);
|
blk->dev_ops->change_media_cb(blk->dev_opaque, load, &local_err);
|
||||||
if (local_err) {
|
if (local_err) {
|
||||||
@ -1783,9 +1750,6 @@ void blk_eject(BlockBackend *blk, bool eject_flag)
|
|||||||
BlockDriverState *bs = blk_bs(blk);
|
BlockDriverState *bs = blk_bs(blk);
|
||||||
char *id;
|
char *id;
|
||||||
|
|
||||||
/* blk_eject is only called by qdevified devices */
|
|
||||||
assert(!blk->legacy_dev);
|
|
||||||
|
|
||||||
if (bs) {
|
if (bs) {
|
||||||
bdrv_eject(bs, eject_flag);
|
bdrv_eject(bs, eject_flag);
|
||||||
}
|
}
|
||||||
|
@ -110,9 +110,8 @@ void blk_iostatus_disable(BlockBackend *blk);
|
|||||||
void blk_iostatus_reset(BlockBackend *blk);
|
void blk_iostatus_reset(BlockBackend *blk);
|
||||||
void blk_iostatus_set_err(BlockBackend *blk, int error);
|
void blk_iostatus_set_err(BlockBackend *blk, int error);
|
||||||
int blk_attach_dev(BlockBackend *blk, DeviceState *dev);
|
int blk_attach_dev(BlockBackend *blk, DeviceState *dev);
|
||||||
void blk_attach_dev_legacy(BlockBackend *blk, void *dev);
|
void blk_detach_dev(BlockBackend *blk, DeviceState *dev);
|
||||||
void blk_detach_dev(BlockBackend *blk, void *dev);
|
DeviceState *blk_get_attached_dev(BlockBackend *blk);
|
||||||
void *blk_get_attached_dev(BlockBackend *blk);
|
|
||||||
char *blk_get_attached_dev_id(BlockBackend *blk);
|
char *blk_get_attached_dev_id(BlockBackend *blk);
|
||||||
BlockBackend *blk_by_dev(void *dev);
|
BlockBackend *blk_by_dev(void *dev);
|
||||||
BlockBackend *blk_by_qdev_id(const char *id, Error **errp);
|
BlockBackend *blk_by_qdev_id(const char *id, Error **errp);
|
||||||
|
Loading…
Reference in New Issue
Block a user