[libvirt] [PATCH v6 4/4] nodedev: Remove driver locks around object list mgmt code

Erik Skultety eskultet at redhat.com
Mon Jul 24 07:53:15 UTC 2017


On Thu, Jul 20, 2017 at 10:08:15AM -0400, John Ferlan wrote:
> Since virnodedeviceobj now has a self-lockable hash table, there's no
> need to lock the table from the driver for processing. Thus remove the
> locks from the driver for NodeDeviceObjList mgmt.
>
> This includes the test driver as well.
>
> Signed-off-by: John Ferlan <jferlan at redhat.com>

...

>
>      /* Populate with known devices */

^This comment should come after the unlock, so it's 100% clear it's linked to
the udevEnumerateDevices call.

> -
> +    nodeDeviceUnlock();
>      if (udevEnumerateDevices(udev) != 0)
>          goto cleanup;
>
> -    ret = 0;
> +    return 0;
>
>   cleanup:
>      nodeDeviceUnlock();
> -
> -    if (ret == -1)
> -        nodeStateCleanup();
> -    return ret;
> +    nodeStateCleanup();
> +    return -1;
>  }
>

The patch is straightforward, if there is a spot where you forgot to handle the
locks in a similar manner and I missed it, either I will hit it with my
follow-up "mdev nodedev-list kernel race" series or someone else eventually
will :).

ACK to 1,2 and this one, I had some comments to 3, but ACK'd it in principle.

Erik




More information about the libvir-list mailing list