fat_dir_readahead(dir, iblock, phys);  
static int fat__get_entry(struct inode *dir, loff_t *pos,			  struct buffer_head **bh, struct msdos_dir_entry **de){	struct super_block *sb = dir->i_sb;	sector_t phys, iblock;	int offset;	int err;next:	if (*bh)		brelse(*bh);	*bh = NULL;	iblock = *pos >> sb->s_blocksize_bits;	err = fat_bmap(dir, iblock, &phys);	if (err || !phys)		return -1;	/* beyond EOF or error */	*bh = sb_bread(sb, phys);	if (*bh == NULL) {		printk(KERN_ERR "FAT: Directory bread(block %llu) failed\n",		       (unsigned long long)phys);		/* skip this block */		*pos = (iblock + 1) << sb->s_blocksize_bits;		goto next;	}	offset = *pos & (sb->s_blocksize - 1);	*pos += sizeof(struct msdos_dir_entry);	*de = (struct msdos_dir_entry *)((*bh)->b_data + offset);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/f3ef6f63e5c575c136b39bb423a6e9a002932da7/dir.c/buggy/fs/fat/dir.c