/* ima_inode_alloc - allocate an iint associated with an inode @inode: pointer to the inode  */
int ima_inode_alloc(struct inode *inode)
/* ima_inode_alloc - allocate an iint associated with an inode @inode: pointer to the inode  */
int ima_inode_alloc(struct inode *inode)
{
	struct ima_iint_cache *iint = NULL;
	int rc = 0;
	iint = kmem_cache_alloc(iint_cache, GFP_NOFS);
	if (!iint)
		return -ENOMEM;
	rc = radix_tree_preload(GFP_NOFS);
	if (rc < 0)
		goto out;
	spin_lock(&ima_iint_lock);
	rc = radix_tree_insert(&ima_iint_store, (unsigned long)inode, iint);
	spin_unlock(&ima_iint_lock);
out:
	if (rc < 0)
		kmem_cache_free(iint_cache, iint);
	radix_tree_preload_end();
	return rc;
}