inode->i_ctime = inode->i_mtime; 
inode->i_ctime = inode->i_atime = inode->i_mtime; 
static int fat_fill_inode(struct inode *inode, struct msdos_dir_entry *de){	struct msdos_sb_info *sbi = MSDOS_SB(inode->i_sb);	int error;	MSDOS_I(inode)->i_pos = 0;	inode->i_uid = sbi->options.fs_uid;	inode->i_gid = sbi->options.fs_gid;	inode->i_version++;	inode->i_generation = get_seconds();	if ((de->attr & ATTR_DIR) && !IS_FREE(de->name)) {		inode->i_generation &= ~1;		inode->i_mode = MSDOS_MKMODE(de->attr,			S_IRWXUGO & ~sbi->options.fs_dmask) | S_IFDIR;		inode->i_op = sbi->dir_ops;		inode->i_fop = &fat_dir_operations;		MSDOS_I(inode)->i_start = le16_to_cpu(de->start);		if (sbi->fat_bits == 32)			MSDOS_I(inode)->i_start |= (le16_to_cpu(de->starthi) << 16);		MSDOS_I(inode)->i_logstart = MSDOS_I(inode)->i_start;		error = fat_calc_dir_size(inode);		if (error < 0)			return error;		MSDOS_I(inode)->mmu_private = inode->i_size;		inode->i_nlink = fat_subdirs(inode);	} else { /* not a directory */		inode->i_generation |= 1;		inode->i_mode = MSDOS_MKMODE(de->attr,		    ((sbi->options.showexec &&			!is_exec(de->ext))			? S_IRUGO|S_IWUGO : S_IRWXUGO)		    & ~sbi->options.fs_fmask) | S_IFREG;		MSDOS_I(inode)->i_start = le16_to_cpu(de->start);		if (sbi->fat_bits == 32)			MSDOS_I(inode)->i_start |= (le16_to_cpu(de->starthi) << 16);		MSDOS_I(inode)->i_logstart = MSDOS_I(inode)->i_start;		inode->i_size = le32_to_cpu(de->size);		inode->i_op = &fat_file_inode_operations;		inode->i_fop = &fat_file_operations;		inode->i_mapping->a_ops = &fat_aops;		MSDOS_I(inode)->mmu_private = inode->i_size;	}	if (de->attr & ATTR_SYS) {		if (sbi->options.sys_immutable)			inode->i_flags |= S_IMMUTABLE;	}	MSDOS_I(inode)->i_attrs = de->attr & ATTR_UNUSED;	/* this is as close to the truth as we can get ... */	inode->i_blksize = sbi->cluster_size;	inode->i_blocks = ((inode->i_size + (sbi->cluster_size - 1))			   & ~((loff_t)sbi->cluster_size - 1)) >> 9;	inode->i_mtime.tv_sec = inode->i_atime.tv_sec =		date_dos2unix(le16_to_cpu(de->time), le16_to_cpu(de->date));	inode->i_mtime.tv_nsec = inode->i_atime.tv_nsec = 0;	if (sbi->options.isvfat) {		int secs = de->ctime_cs / 100;		int csecs = de->ctime_cs % 100;		inode->i_ctime.tv_sec  =			date_dos2unix(le16_to_cpu(de->ctime),				      le16_to_cpu(de->cdate)) + secs;		inode->i_ctime.tv_nsec = csecs * 10000000;	} else		inode->i_ctime = inode->i_mtime;	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/62a36c43c898d45efcfe3376ea1da6a9a182e1ad/inode.c/buggy/fs/fat/inode.c