substream->open_flag = 1; 
substream->ffile = file; 
static int snd_pcm_open_file(struct file *file,			     snd_pcm_t *pcm,			     int stream,			     snd_pcm_file_t **rpcm_file){	int err = 0;	snd_pcm_file_t *pcm_file;	snd_pcm_substream_t *substream;	snd_pcm_str_t *str;	snd_assert(rpcm_file != NULL, return -EINVAL);	*rpcm_file = NULL;	pcm_file = kcalloc(1, sizeof(*pcm_file), GFP_KERNEL);	if (pcm_file == NULL) {		return -ENOMEM;	}	if ((err = snd_pcm_open_substream(pcm, stream, &substream)) < 0) {		kfree(pcm_file);		return err;	}	str = substream->pstr;	substream->file = pcm_file;	substream->no_mmap_ctrl = 0;	pcm_file->substream = substream;	snd_pcm_add_file(str, pcm_file);	err = snd_pcm_hw_constraints_init(substream);	if (err < 0) {		snd_printd("snd_pcm_hw_constraints_init failed\n");		snd_pcm_release_file(pcm_file);		return err;	}	if ((err = substream->ops->open(substream)) < 0) {		snd_pcm_release_file(pcm_file);		return err;	}	substream->open_flag = 1;	err = snd_pcm_hw_constraints_complete(substream);	if (err < 0) {		snd_printd("snd_pcm_hw_constraints_complete failed\n");		substream->ops->close(substream);		snd_pcm_release_file(pcm_file);		return err;	}	substream->ffile = file;	file->private_data = pcm_file;	*rpcm_file = pcm_file;	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/443feb882679e21ba5d1e0ff9eff067ac26d9461/pcm_native.c/clean/sound/core/pcm_native.c