On Sat, 09/13 17:00, Markus Armbruster wrote: > Commit 2d246f0 introduced DriveInfo member enable_auto_del to > distinguish DriveInfo created via drive_new() from DriveInfo created > via qmp_blockdev_add(). The latter no longer exist. Drop > enable_auto_del. > > Signed-off-by: Markus Armbruster <arm...@redhat.com> > --- > blockdev.c | 11 +++-------- > include/sysemu/blockdev.h | 1 - > 2 files changed, 3 insertions(+), 9 deletions(-) > > diff --git a/blockdev.c b/blockdev.c > index 0d99be0..e218c59 100644 > --- a/blockdev.c > +++ b/blockdev.c > @@ -90,16 +90,14 @@ void blockdev_mark_auto_del(BlockBackend *blk) > DriveInfo *dinfo = blk_legacy_dinfo(blk); > BlockDriverState *bs = blk_bs(blk); > > - if (dinfo && !dinfo->enable_auto_del) { > + if (!dinfo) { > return; > } > > if (bs->job) { > block_job_cancel(bs->job); > } > - if (dinfo) { > - dinfo->auto_del = 1; > - } > + dinfo->auto_del = 1; > }
Looks good. Based on the explanation in the commit message of patch 18, previouly, dinfo is always non-NULL, so enable_auto_del distinguishes whether the device is created by drive_new() or qmp_blockdev_add(). Now dinfo is NULL iff created by qmp_blockdev_add(), so enable_auto_del is not necessary any more. If I'm reading correctly, the dropped two "if (dinfo.."'s are also redundant. Reviewed-by: Fam Zheng <f...@redhat.com> > > void blockdev_auto_del(BlockBackend *blk) > @@ -900,7 +898,6 @@ DriveInfo *drive_new(QemuOpts *all_opts, > BlockInterfaceType block_default_type) > > /* Set legacy DriveInfo fields */ > dinfo = g_malloc0(sizeof(*dinfo)); > - dinfo->enable_auto_del = true; > dinfo->opts = all_opts; > dinfo->cyls = cyls; > dinfo->heads = heads; > @@ -1716,7 +1713,6 @@ int do_drive_del(Monitor *mon, const QDict *qdict, > QObject **ret_data) > const char *id = qdict_get_str(qdict, "id"); > BlockBackend *blk; > BlockDriverState *bs; > - DriveInfo *dinfo; > AioContext *aio_context; > Error *local_err = NULL; > > @@ -1727,8 +1723,7 @@ int do_drive_del(Monitor *mon, const QDict *qdict, > QObject **ret_data) > } > bs = blk_bs(blk); > > - dinfo = blk_legacy_dinfo(blk); > - if (dinfo && !dinfo->enable_auto_del) { > + if (!blk_legacy_dinfo(blk)) { > error_report("Deleting device added with blockdev-add" > " is not supported"); > return -1; > diff --git a/include/sysemu/blockdev.h b/include/sysemu/blockdev.h > index 27a40d5..2129d81 100644 > --- a/include/sysemu/blockdev.h > +++ b/include/sysemu/blockdev.h > @@ -35,7 +35,6 @@ struct DriveInfo { > int bus; > int unit; > int auto_del; /* see blockdev_mark_auto_del() */ > - bool enable_auto_del; /* Only for legacy drive_new() */ > int media_cd; > int cyls, heads, secs, trans; > QemuOpts *opts; > -- > 1.9.3 > >