if(fd->version > *mctime_ver) { 
if(fd->version > *mctime_ver && je32_to_cpu(rd->mctime)) { 
static inline int read_direntry(struct jffs2_sb_info *c, struct jffs2_raw_node_ref *ref,				struct jffs2_raw_dirent *rd, uint32_t read, struct jffs2_full_dirent **fdp,				uint32_t *latest_mctime, uint32_t *mctime_ver){	struct jffs2_full_dirent *fd;		/* The direntry nodes are checked during the flash scanning */	BUG_ON(ref_flags(ref) == REF_UNCHECKED);	/* Obsoleted. This cannot happen, surely? dwmw2 20020308 */	BUG_ON(ref_obsolete(ref));				/* Sanity check */	if (unlikely(PAD((rd->nsize + sizeof(*rd))) != PAD(je32_to_cpu(rd->totlen)))) {		JFFS2_ERROR("illegal nsize in node at %#08x: nsize %#02x, totlen %#04x\n",		       ref_offset(ref), rd->nsize, je32_to_cpu(rd->totlen));		return 1;	}		fd = jffs2_alloc_full_dirent(rd->nsize + 1);	if (unlikely(!fd))		return -ENOMEM;	fd->raw = ref;	fd->version = je32_to_cpu(rd->version);	fd->ino = je32_to_cpu(rd->ino);	fd->type = rd->type;	/* Pick out the mctime of the latest dirent */	if(fd->version > *mctime_ver) {		*mctime_ver = fd->version;		*latest_mctime = je32_to_cpu(rd->mctime);	}	/* 	 * Copy as much of the name as possible from the raw	 * dirent we've already read from the flash.	 */	if (read > sizeof(*rd))		memcpy(&fd->name[0], &rd->name[0],		       min_t(uint32_t, rd->nsize, (read - sizeof(*rd)) ));			/* Do we need to copy any more of the name directly from the flash? */	if (rd->nsize + sizeof(*rd) > read) {		/* FIXME: point() */		int err;		int already = read - sizeof(*rd);					err = jffs2_flash_read(c, (ref_offset(ref)) + read, 				rd->nsize - already, &read, &fd->name[already]);		if (unlikely(read != rd->nsize - already) && likely(!err))			return -EIO;					if (unlikely(err)) {			JFFS2_ERROR("read remainder of name: error %d\n", err);			jffs2_free_full_dirent(fd);			return -EIO;		}	}		fd->nhash = full_name_hash(fd->name, rd->nsize);	fd->next = NULL;	fd->name[rd->nsize] = '\0';		/*	 * Wheee. We now have a complete jffs2_full_dirent structure, with	 * the name in it and everything. Link it into the list 	 */	jffs2_add_fd_to_list(c, fd, fdp);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3a69e0cd22cf34920508a4032d53e41251925f53/readinode.c/buggy/fs/jffs2/readinode.c