/* Relocation based on dirid, hashing them into a given bitmap block files. Formatted nodes are unaffected, a separate policy covers them  */
static void dirid_groups(reiserfs_blocknr_hint_t *hint)
/* Relocation based on dirid, hashing them into a given bitmap block files. Formatted nodes are unaffected, a separate policy covers them  */
static void dirid_groups(reiserfs_blocknr_hint_t *hint)
{
	unsigned long hash;
	__u32 dirid = 0;
	int bm = 0;
	struct super_block *sb = hint->th->t_super;
	if (hint->inode)
		dirid = le32_to_cpu(INODE_PKEY(hint->inode)->k_dir_id);
	else if (hint->formatted_node)
		dirid = hint->key.k_dir_id;
	if (dirid) {
		bm = bmap_hash_id(sb, dirid);
		hash = bm * (sb->s_blocksize << 3);
		if (hint->inode)
			hash += sb->s_blocksize / 2;
		hint->search_start = hash;
	}
}