[libvirt] [PATCH 1/3] node device: Fix locking issue in virNodeDeviceDestroy

Dave Allan dallan at redhat.com
Mon Oct 19 21:28:23 UTC 2009


Cole Robinson wrote:
> Certain error paths won't unlock the node device object.
> 
> Signed-off-by: Cole Robinson <crobinso at redhat.com>
> ---
>  src/node_device/node_device_driver.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c
> index 14b3098..21a4c8d 100644
> --- a/src/node_device/node_device_driver.c
> +++ b/src/node_device/node_device_driver.c
> @@ -720,6 +720,8 @@ nodeDeviceDestroy(virNodeDevicePtr dev)
>      }
>  
>  out:
> +    if (obj)
> +        virNodeDeviceObjUnlock(obj);
>      VIR_FREE(parent_name);
>      VIR_FREE(wwnn);
>      VIR_FREE(wwpn);

ACK to this patch.  I think this way to do the unlock in the error case 
is correct.  (I don't agree with Matthias' comment.  As the code stands 
now, either way will work, but this way protects against problems in 
code that is added in the future.)




More information about the libvir-list mailing list