[PATCH 05/15] conf: domain_addr: Refactor hash usage in zpci reservation code
Peter Krempa
pkrempa at redhat.com
Thu Oct 22 11:53:58 UTC 2020
On Thu, Oct 22, 2020 at 13:44:10 +0200, Bjoern Walk wrote:
> Peter Krempa <pkrempa at redhat.com> [2020-10-22, 11:34AM +0200]:
> > Rewrite using GHashTable which already has interfaces for using a number
> > as hash key.
> >
> > Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> > ---
> > src/conf/domain_addr.c | 123 +++++++++--------------------------------
> > src/conf/domain_addr.h | 4 +-
> > 2 files changed, 27 insertions(+), 100 deletions(-)
[...]
> > @@ -123,40 +122,19 @@ virDomainZPCIAddressAssignFid(virHashTablePtr set,
> >
> >
> > static void
> > -virDomainZPCIAddressReleaseId(virHashTablePtr set,
> > - virZPCIDeviceAddressID *id,
> > - const char *name)
> > +virDomainZPCIAddressReleaseId(GHashTable *set,
> > + virZPCIDeviceAddressID *id)
> > {
> > if (!id->isSet)
> > return;
> >
> > - if (virHashRemoveEntry(set, &id->value) < 0) {
> > - virReportError(VIR_ERR_INTERNAL_ERROR,
> > - _("Release %s %o failed"),
> > - name, id->value);
> > - }
> > + g_hash_table_remove(set, &id->value);
>
> Here I'm not so sure, IIUC the original code reported an error when the
> value was not found in the hash table. This will be dropped with the new
> code. But since this should only occur in pathological cases anyways, so
Specifically, here the error is only logged, but the caller doesn't take
any action/return any value.
That means that there wouldn't be any immediate notification of the
user. It's very unlikely that the error will be noticed in logs.
g_hash_table_remove returns whether it released the value or not, but I
don't feel it's worth keeping it.
> I guess this is fine.
Thanks!
More information about the libvir-list
mailing list