Exemple #1
0
static int dvb_demux_release(struct inode *inode, struct file *file)
{
	struct dmxdev_filter *dmxdevfilter = file->private_data;
	struct dmxdev *dmxdev = dmxdevfilter->dev;

	return dvb_dmxdev_filter_free(dmxdev, dmxdevfilter);
}
Exemple #2
0
static int dvb_demux_release(struct inode *inode, struct file *file)
{
	struct dmxdev_filter *dmxdevfilter = dvb_dmxdev_file_to_filter(file);
	struct dmxdev *dmxdev = dmxdevfilter->dev;

	return dvb_dmxdev_filter_free(dmxdev, dmxdevfilter);
}
Exemple #3
0
static int dvb_demux_release(struct inode *inode, struct file *file)
{
    struct dmxdev_filter *dmxdevfilter = file->private_data;
    struct dmxdev *dmxdev = dmxdevfilter->dev;

    int ret;

    ret = dvb_dmxdev_filter_free(dmxdev, dmxdevfilter);

    mutex_lock(&dmxdev->mutex);
    dmxdev->dvbdev->users--;
    if(dmxdev->dvbdev->users==1 && dmxdev->exit==1) {
        fops_put(file->f_op);
        file->f_op = NULL;
        mutex_unlock(&dmxdev->mutex);
        wake_up(&dmxdev->dvbdev->wait_queue);
    } else
        mutex_unlock(&dmxdev->mutex);

    return ret;
}