/* Finds the bucket for a given name and reads the containing block; *ofs is set to the offset of the first list entry.  */
static struct buffer_head* omfs_get_bucket(struct inode *dir, const char *name, int namelen, int *ofs)
/* Finds the bucket for a given name and reads the containing block; *ofs is set to the offset of the first list entry.  */
static struct buffer_head* omfs_get_bucket(struct inode *dir, const char *name, int namelen, int *ofs)
{
	int nbuckets = (dir->i_size - OMFS_DIR_START)/8;
	int block = clus_to_blk(OMFS_SB(dir->i_sb), dir->i_ino);
	int bucket = omfs_hash(name, namelen, nbuckets);
	*ofs = OMFS_DIR_START + bucket * 8;
	return sb_bread(dir->i_sb, block);
}