/* ->alloc_inode() callback. Allocates inode and initilizes private data.  */
static struct inode* pohmelfs_alloc_inode(struct super_block *sb)
/* ->alloc_inode() callback. Allocates inode and initilizes private data.  */
static struct inode* pohmelfs_alloc_inode(struct super_block *sb)
{
	struct pohmelfs_inode *pi;
	pi = kmem_cache_alloc(pohmelfs_inode_cache, GFP_NOIO);
	if (!pi)
		return NULL;
	pi->hash_root = RB_ROOT;
	mutex_init(&pi->offset_lock);
	INIT_LIST_HEAD(&pi->sync_create_list);
	INIT_LIST_HEAD(&pi->inode_entry);
	pi->lock_type = 0;
	pi->state = 0;
	pi->total_len = 0;
	pi->drop_count = 0;
	dprintk("%s: pi: %p, inode: %p.\n", __func__, pi, &pi->vfs_inode);
	atomic_long_inc(&POHMELFS_SB(sb)->total_inodes);
	return &pi->vfs_inode;
}