spin_lock_init(&atomic_sessions_lock);
static int __init tgt_init(void){	int i, err = -ENOMEM;	spin_lock_init(&all_targets_lock);	spin_lock_init(&atomic_sessions_lock);	spin_lock_init(&cmnd_hash_lock);	spin_lock_init(&target_tmpl_lock);	spin_lock_init(&device_tmpl_lock);	tgt_protocol_init();	err = tgt_sysfs_init();	if (err)		return err;	cmnd_slab = kmem_cache_create("tgt_cmnd", sizeof(struct tgt_cmnd), 0,				      SLAB_HWCACHE_ALIGN | SLAB_NO_REAP,				      NULL, NULL);	if (!cmnd_slab)		goto out;	work_slab = kmem_cache_create("tgt_work", sizeof(struct tgt_work), 0,				      SLAB_HWCACHE_ALIGN | SLAB_NO_REAP,				      NULL, NULL);	if (!work_slab)		goto out;	nls = netlink_kernel_create(NETLINK_TGT, event_recv);	if (!nls)		goto out;	for (i = 0; i < ARRAY_SIZE(cmnd_hash); i++)		INIT_LIST_HEAD(&cmnd_hash[i]);	return 0;out:	tgt_exit();	return err;}