On Thu, Jan 25, 2024 at 14:52:09 -0600, Jonathon Jongsma wrote: > This will allow us to start or stop nbdkit for just a single disk source > or for every source in the backing chain. This will be used in following > patches. > > Signed-off-by: Jonathon Jongsma <jjongsma@xxxxxxxxxx> > --- > src/qemu/qemu_extdevice.c | 8 +++--- > src/qemu/qemu_hotplug.c | 6 ++--- > src/qemu/qemu_nbdkit.c | 51 ++++++++++++++++++++++++++++++--------- > src/qemu/qemu_nbdkit.h | 6 +++-- > 4 files changed, 51 insertions(+), 20 deletions(-) [...] > diff --git a/src/qemu/qemu_nbdkit.c b/src/qemu/qemu_nbdkit.c > index 1c72b6fe6a..39f9c58a48 100644 > --- a/src/qemu/qemu_nbdkit.c > +++ b/src/qemu/qemu_nbdkit.c > @@ -912,18 +928,31 @@ qemuNbdkitStartStorageSource(virQEMUDriver *driver, > } > > > +static void > +qemuNbdkitStopStorageSourceOne(virStorageSource *src, > + virDomainObj *vm) > +{ > + qemuDomainStorageSourcePrivate *priv = QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(src); > + > + if (priv && priv->nbdkitProcess && > + qemuNbdkitProcessStop(priv->nbdkitProcess, vm) < 0) > + VIR_WARN("Unable to stop nbdkit for storage source '%s'", > + qemuBlockStorageSourceGetStorageNodename(src)); > +} > + > + > void No return value. > qemuNbdkitStopStorageSource(virStorageSource *src, > - virDomainObj *vm) > + virDomainObj *vm, > + bool chain) > { > virStorageSource *backing; > > - for (backing = src; backing != NULL; backing = backing->backingStore) { > - qemuDomainStorageSourcePrivate *priv = QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(backing); > + if (! chain) s/! chain/!chain/ > + return qemuNbdkitStopStorageSourceOne(src, vm); Return in a function with no return value. Compilers don't complain but it may mislead readers. > > - if (priv && priv->nbdkitProcess && > - qemuNbdkitProcessStop(priv->nbdkitProcess, vm) < 0) > - VIR_WARN("Unable to stop nbdkit for storage source '%s'", qemuBlockStorageSourceGetStorageNodename(src)); > + for (backing = src; backing != NULL; backing = backing->backingStore) { > + qemuNbdkitStopStorageSourceOne(backing, vm); Alternatively rather than having an extra invocation before this loop you can break out if (!chain) here for same result. Same applies also to the 'Start' function. > } > } With the extra space and 'return' removed: Reviewed-by: Peter Krempa <pkrempa@xxxxxxxxxx> _______________________________________________ Devel mailing list -- devel@xxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxx