debug_info_snapshot = debug_info_copy(debug_info); 
if(!debug_info->views[i]->format_proc && !debug_info->views[i]->header_proc){ debug_info_snapshot = debug_info_copy(debug_info, NO_AREAS); } else { debug_info_snapshot = debug_info_copy(debug_info, ALL_AREAS); } 
static int debug_open(struct inode *inode, struct file *file){	int i = 0, rc = 0;	file_private_info_t *p_info;	debug_info_t *debug_info, *debug_info_snapshot;#ifdef DEBUG	printk("debug_open\n");#endif	down(&debug_lock);	/* find debug log and view */	debug_info = debug_area_first;	while(debug_info != NULL){		for (i = 0; i < DEBUG_MAX_VIEWS; i++) {			if (debug_info->views[i] == NULL)				continue;			else if (debug_info->proc_entries[i] ==				 PDE(file->f_dentry->d_inode)) {				goto found;	/* found view ! */			}		}		debug_info = debug_info->next;	}	/* no entry found */	rc = -EINVAL;	goto out;      found:	/* make snapshot of current debug areas to get it consistent */	debug_info_snapshot = debug_info_copy(debug_info);	if(!debug_info_snapshot){#ifdef DEBUG		printk(KERN_ERR "debug_open: debug_info_copy failed (out of mem)\n");#endif		rc = -ENOMEM;		goto out;	}	if ((file->private_data =	     kmalloc(sizeof(file_private_info_t), GFP_ATOMIC)) == 0) {#ifdef DEBUG		printk(KERN_ERR "debug_open: kmalloc failed\n");#endif		debug_info_free(debug_info_snapshot);			rc = -ENOMEM;		goto out;	}	p_info = (file_private_info_t *) file->private_data;	p_info->offset = 0;	p_info->debug_info_snap = debug_info_snapshot;	p_info->debug_info_org  = debug_info;	p_info->view = debug_info->views[i];	p_info->act_area = 0;	p_info->act_entry = DEBUG_PROLOG_ENTRY;	p_info->act_entry_offset = 0;	debug_info_get(debug_info);      out:	up(&debug_lock);	return rc;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/66a464dbc8e0345b6f972b92bf1118e043d7c987/debug.c/clean/arch/s390/kernel/debug.c