JFFS2_DBG_SUMMARY("called\n"); 
dbg_summary("called\n"); 
int jffs2_sum_write_sumnode(struct jffs2_sb_info *c){	struct jffs2_raw_node_ref *summary_ref;	int datasize, infosize, padsize, ret;	struct jffs2_eraseblock *jeb;	JFFS2_DBG_SUMMARY("called\n");	jeb = c->nextblock;	if (!c->summary->sum_num || !c->summary->sum_list_head) {		JFFS2_WARNING("Empty summary info!!!\n");		BUG();	}	datasize = c->summary->sum_size + sizeof(struct jffs2_sum_marker);	infosize = sizeof(struct jffs2_summary_node) + datasize;	padsize = jeb->free_size - infosize;	infosize += padsize; 	datasize += padsize;	/* Is there enough space for summary? */	if (padsize < 0) {		/* don't try to write out summary for this jeb */		jffs2_sum_disable_collecting(c->summary);		JFFS2_WARNING("Not enough space for summary, padsize = %d\n", padsize);		return 0;	}	ret = jffs2_sum_write_data(c, jeb, infosize, datasize, padsize);	if (ret)		return 0; /* can't write out summary, block is marked as NOSUM_SIZE */	/* for ACCT_PARANOIA_CHECK */	spin_unlock(&c->erase_completion_lock);	summary_ref = jffs2_alloc_raw_node_ref();	spin_lock(&c->erase_completion_lock);	if (!summary_ref) {		JFFS2_NOTICE("Failed to allocate node ref for summary\n");		return -ENOMEM;	}	summary_ref->next_in_ino = NULL;	summary_ref->next_phys = NULL;	summary_ref->flash_offset = (jeb->offset + c->sector_size - jeb->free_size) | REF_NORMAL;	summary_ref->__totlen = infosize;	if (!jeb->first_node)		jeb->first_node = summary_ref;	if (jeb->last_node)		jeb->last_node->next_phys = summary_ref;	jeb->last_node = summary_ref;	USED_SPACE(infosize);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/733802d974e5af42acb7cd61b16c0ce6dd03b7ed/summary.c/buggy/fs/jffs2/summary.c