/* based on the resolved device node GUID see if there already allocated device for this device. If there's no such, create one.  */
static struct iser_device* iser_device_find_by_ib_device(struct rdma_cm_id *cma_id)
/* based on the resolved device node GUID see if there already allocated device for this device. If there's no such, create one.  */
static struct iser_device* iser_device_find_by_ib_device(struct rdma_cm_id *cma_id)
{
	struct iser_device *device;
	mutex_lock(&ig.device_list_mutex);
	list_for_each_entry(device, &ig.device_list, ig_list)
		if (device->ib_device->node_guid == cma_id->device->node_guid)
			goto inc_refcnt;
	device = kzalloc(sizeof *device, GFP_KERNEL);
	if (device == NULL)
		goto out;
	device->ib_device = cma_id->device;
	if (iser_create_device_ib_res(device)) {
		kfree(device);
		device = NULL;
		goto out;
	}
	list_add(&device->ig_list, &ig.device_list);
inc_refcnt:
	device->refcount++;
out:
	mutex_unlock(&ig.device_list_mutex);
	return device;
}