/* dcache operations Note: the dentry argument is the parent dentry.  */
static int hpfs_hash_dentry(struct dentry *dentry, struct qstr *qstr)
/* dcache operations Note: the dentry argument is the parent dentry.  */
static int hpfs_hash_dentry(struct dentry *dentry, struct qstr *qstr)
{
	unsigned long	 hash;
	int		 i;
	unsigned l = qstr->len;
	if (l == 1) if (qstr->name[0]=='.') goto x;
	if (l == 2) if (qstr->name[0]=='.' || qstr->name[1]=='.') goto x;
	hpfs_adjust_length((char *)qstr->name, &l);
	x:
	hash = init_name_hash();
	for (i = 0; i < l; i++)
		hash = partial_name_hash(hpfs_upcase(hpfs_sb(dentry->d_sb)->sb_cp_table,qstr->name[i]), hash);
	qstr->hash = end_name_hash(hash);
	return 0;
}