if (!try_module_get(dev->ib_dev->owner)) return -ENODEV; 
spin_lock(&map_lock); dev = dev_table[iminor(inode) - IB_UVERBS_BASE_MINOR]; if (dev) kref_get(&dev->ref); spin_unlock(&map_lock);  if (!dev) return -ENXIO;  if (!try_module_get(dev->ib_dev->owner)) { ret = -ENODEV; goto err; } 
static int ib_uverbs_open(struct inode *inode, struct file *filp){	struct ib_uverbs_device *dev =		container_of(inode->i_cdev, struct ib_uverbs_device, dev);	struct ib_uverbs_file *file;	if (!try_module_get(dev->ib_dev->owner))		return -ENODEV;	file = kmalloc(sizeof *file, GFP_KERNEL);	if (!file) {		module_put(dev->ib_dev->owner);		return -ENOMEM;	}	file->device   = dev;	file->ucontext = NULL;	kref_init(&file->ref);	init_MUTEX(&file->mutex);	filp->private_data = file;	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/70a30e16a8a9d22396a4d1e96af86e43594df584/uverbs_main.c/clean/drivers/infiniband/core/uverbs_main.c