On 04/03/2013 01:06 PM, Hu Tao wrote:
On Mon, Apr 01, 2013 at 08:00:57PM +0800, Han Cheng wrote:
> +int
> +virSCSIDeviceListAdd(virSCSIDeviceListPtr list,
> + virSCSIDevicePtr dev)
> +{
> + if (virSCSIDeviceListFind(list, dev)) {
> + virReportError(VIR_ERR_INTERNAL_ERROR,
> + _("Device %s is already in use"),
> + dev->name);
> + return -1;
> + }
> +
> + if (VIR_REALLOC_N(list->devs, list->count+1)< 0) {
> + virReportOOMError();
> + return -1;
> + }
> +
> + list->devs[list->count++] = dev;
The list is lockable, but you're not protecting it with lock.
Yes.
But for most time, we are manipulating a local list. There is no
concurrency problem.
The only concurrency problem is about driver->activeScsiHostdevs(type of
virSCSIDeviceListPtr). We'll hold the lock if we want manipulate that.
Cheng