rd.mctime = cpu_to_je32(max(JFFS2_F_I_MTIME(f), JFFS2_F_I_CTIME(f))); 
/* If the times on this inode were set by explicit utime() they can be different, so refrain from splatting them. */ if (JFFS2_F_I_MTIME(f) == JFFS2_F_I_CTIME(f)) rd.mctime = cpu_to_je32(JFFS2_F_I_MTIME(f)); else rd.mctime = cpu_to_je32(0); 
static int jffs2_garbage_collect_dirent(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb, 					struct jffs2_inode_info *f, struct jffs2_full_dirent *fd){	struct jffs2_full_dirent *new_fd;	struct jffs2_raw_dirent rd;	uint32_t alloclen, phys_ofs;	int ret;	rd.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK);	rd.nodetype = cpu_to_je16(JFFS2_NODETYPE_DIRENT);	rd.nsize = strlen(fd->name);	rd.totlen = cpu_to_je32(sizeof(rd) + rd.nsize);	rd.hdr_crc = cpu_to_je32(crc32(0, &rd, sizeof(struct jffs2_unknown_node)-4));	rd.pino = cpu_to_je32(f->inocache->ino);	rd.version = cpu_to_je32(++f->highest_version);	rd.ino = cpu_to_je32(fd->ino);	rd.mctime = cpu_to_je32(max(JFFS2_F_I_MTIME(f), JFFS2_F_I_CTIME(f)));	rd.type = fd->type;	rd.node_crc = cpu_to_je32(crc32(0, &rd, sizeof(rd)-8));	rd.name_crc = cpu_to_je32(crc32(0, fd->name, rd.nsize));		ret = jffs2_reserve_space_gc(c, sizeof(rd)+rd.nsize, &phys_ofs, &alloclen);	if (ret) {		printk(KERN_WARNING "jffs2_reserve_space_gc of %zd bytes for garbage_collect_dirent failed: %d\n",		       sizeof(rd)+rd.nsize, ret);		return ret;	}	new_fd = jffs2_write_dirent(c, f, &rd, fd->name, rd.nsize, phys_ofs, ALLOC_GC);	if (IS_ERR(new_fd)) {		printk(KERN_WARNING "jffs2_write_dirent in garbage_collect_dirent failed: %ld\n", PTR_ERR(new_fd));		return PTR_ERR(new_fd);	}	jffs2_add_fd_to_list(c, new_fd, &f->dents);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3a69e0cd22cf34920508a4032d53e41251925f53/gc.c/clean/fs/jffs2/gc.c