
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